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 |