Realm?
오픈소스로 제공되는 모바일 데이터베이스 관리 라이브러리.
클래스 단위로 Table이 생성되고, 객체 단위로 row가 구성된다.
RealmSwift
우선 pod 'RealmSwift', '5.3.3' 으로 Pods에 프레임워크 생성해주고,
import RealmSwift 해서 쓰면 끝이다.
우선 Realm 상에 저장할 객체 클래스를 생성한다.
여기서 주의할 점은 Realm에서 column 형태로 사용하려면, @objc dynamic 을 반드시 붙여줘야 한다
class Cat: Object {
@objc dynamic var name: String?
@objc dynamic var color: String?
@objc dynamic var gender: String?
}
그리고 Realm 객체를 이용해 객체 단위로 CRUD를 할 수 있다.
// Realm 객체 선언
let realm = try! Realm()
// 추가 (예시)
var myCat = Cat()
myCat.name = "Jane"
myCat.color = "Gray"
myCat.gender = "Female"
try! realm.write {
realm.add(myCat)
}
// 조회 (예시)
let cats = realm.objects(Cat.self)
.filter("color = 'Gray'")
.sorted(byKeyPath: "name", ascending: true)
for cat in cats {
print(cat.name!)
}
// 갱신 (예시)
if let cat = realm.objects(Cat.self).first {
try! realm.write {
cat.name = "hi"
}
}
// 삭제 (예시)
if let firstItem = realm.objects(Cat.self)
.sorted(byKeyPath: "name", ascending: true)
.first {
try! realm.write {
realm.delete(firstItem)
}
}
(추가 - Realm Studio)
print(Realm.Configuration.defaultConfiguration.fileURL!)
하면 해당 프로젝트의 realm 파일 위치가 나오는데, 이 위치로 터미널에
open {realm 파일 위치} 라고 입력하면, Realm Studio를 이용해 데이터베이스를 테이블구조로 확인할 수 있다.
오류사항
오류 1) import RealmSwift를 하면 could not build objective-c module 'RealmSwift' 라는 문구가 뜨는 경우
Xcode Product > Schemes > New Scheme... > RealmSwift 선택 후 확인 > Build the RealmSwift target
이후 다시 시도해보면 된다.
오류 2) invalid top array 라는 문구와 함께 .realm 파일이 열리지 않는 경우
다른 버전의 Realm Studio로 해보자.
나의 경우 RealmSwift 5.3.3 버전과 Realm Studio 3.11.0 버전을 사용했더니 해결됐다.
(Realm 사이트 - Swift)
(CocoaPods - RealmSwift)
(GitHub - Realm Studio 3.11.0 다운로드)
(참고 영상)
'iOS' 카테고리의 다른 글
[iOS] Nine-Patch, 둥근모서리 이미지 소스 사용하기 (0) | 2020.10.20 |
---|---|
[iOS] Warning 없는 Clean Code 만들기 (SwiftLint, Pods file) (0) | 2020.10.07 |
[iOS] RxSwift, ReactorKit를 이용한 MVVM 구조 (0) | 2020.09.25 |
[iOS] Xcode 업로드 오류 해결법 (App Store Connect 업로드 불가) (0) | 2020.09.21 |
[Firebase] Firebase Cloud Messaging (FCM) (0) | 2020.08.16 |