훌이
후리스콜링개발
훌이

블로그 메뉴

  • 왈 (iOS APP)
  • Github
전체 방문자
오늘
어제
  • 전체 (171)
    • ⭐️ 개발 (140)
      • JAVA (4)
      • Web (5)
      • iOS & Swift (94)
      • iOS Concurrency (4)
      • Rx (18)
      • Git (6)
      • WWDC (1)
      • Code Refactor (3)
      • Server (1)
    • ⭐️ Computer Science (22)
      • 운영체제 (10)
      • 네트워크 (5)
      • PS (7)
    • 경제시사상식 (8)
    • 기타 등등 (0)

인기 글

최근 글

05-27 16:23

티스토리

hELLO · Designed By 정상우.
훌이

후리스콜링개발

⭐️ 개발/iOS & Swift

[Swift] Realm 진짜.그냥.간단.정리

2022. 8. 24. 03:10
728x90
반응형

Realm 진짜.그냥.간단.정리

realm 파일에 접근하기

let localRealm = try! Realm()

 

 

 

데이터 저장하기

let task = UserDiary(~)
try! = localRealm.write {
     localReam.add(task)
}

 

 

 

데이터 가져오기

realm에서 읽어온 데이터를 담을 배열을 선언하는데 그 이유는 realm의 데이터 중 원하는 내용을 가져와서 보관할 공간으로 사용할 것이기 때문이다, 동시에 realm의 테이블을 직접 수정하지 않고, 데이터만 가져와서 화면에 사용하기 위함이다.

var tasks: Results<UserDiary>!

 

 

 

데이터 정렬하기

이렇게 가져온 데이터의 순서는 마구잡이라, 특정 컬럼을 기준으로 정렬을 해주면 좋을 것이다.

tasks = localRealm.objects(UserDiary.self).sorted(byKeyPath: "title", ascending: false)

- byKeyPath - 어떤 컬럼을 기준으로 할 건지 

- ascending - 오름차순 : 날짜 기준으로 true를 하면 과거 -> 현재순으로 된다.

 

 

 

데이터 필터링하기

(1). a 라는 문자 (대소문자) 상관 안하고 포함하고 있으면 필터링해서 가져온다. 

tasks = localRealm.objects(UserDiary.self).filter("title CONTAINS[c] 'a'")

(2). a 와 똑같은 title인 경우에만 필터링해서 가져온다.

tasks = localRealm.objects(UserDiary.self).filter("title = 'a'")

 

 

 

데이터 업데이트하기

업데이트 후에는 반드시 reloadRows 또는 reloadData 과정이 필요한데, reloadRows가 효율적이다.

 

(1). 하나의 테이블에 특정 컬럼 전체 값을 변경한다.

self.tasks.setValue(true, forKey: "favorite")

(2). 하나의 record에서 여러 컬럼을 변경한다.

self.localRealm.create(UserDiary.self, value: ["objectId": self.tasks[indexPath.row].objectId, "title": "제목 변경"], update: .modified)

(3). 하나의 record 값만 변경한다.

self.tasks[indexPath.row].favorite = !self.tasks[indexPath.row].favorite

 

 

 

데이터 삭제하기

try! = localRealm.write {
     localReam.delete(task)
}

 

 

728x90
반응형
저작자표시 비영리 변경금지 (새창열림)

'⭐️ 개발 > iOS & Swift' 카테고리의 다른 글

[Swift] Error Handling  (4) 2022.08.26
[Swift] WMO - Swift 성능 최적화  (1) 2022.08.26
[iOS] Realm 기본 설계 + Realm에 저장하고 가져오기  (0) 2022.08.23
[iOS] loadView()  (0) 2022.08.21
[Swift] Generic  (0) 2022.08.21
    '⭐️ 개발/iOS & Swift' 카테고리의 다른 글
    • [Swift] Error Handling
    • [Swift] WMO - Swift 성능 최적화
    • [iOS] Realm 기본 설계 + Realm에 저장하고 가져오기
    • [iOS] loadView()
    훌이
    훌이

    티스토리툴바