- coredata, sqllite는 사용해본 경험이 있기 때문에 오늘은 realm을 이용하여 샘플 메모 앱을 만들어 볼 예정
- cocoaPods에 pod ‘RealmSwift’을 해준다. 간단하게 테스트 후 class를 만들어준다.
- realm에도 모델클래스를 만들어주도록 할게요(간단하게 제목, 내용, 날짜) ** realm을 시뮬레이터로 작업중에 모델클래스를 변경하게 되는 경우가 있을것이다. 이때 //Fatal error: ‘try!’ expression unexpectedly raised an error: Error Domain=io.realm Code=10 “Migration is required due to the following errors 이런 에러가 발생되는데 시뮬레이터에 설치되어있는 앱을 삭제하고 재실행 하던지, 실제 아이폰 기기로 작업을 진행하면 되겠다.
import RealmSwift
class Memo: Object {
@objc dynamic var title = ""
@objc dynamic var content = ""
@objc dynamic var date = ""
}
import RealmSwift
class DB {
static var shared = DB()
var realm = try! Realm()
func save(_ memo: Memo) {
try! realm.write {
realm.add(memo)
}
}
func load() -> [Memo] {
let data = realm.objects(Memo.self)
return Array(data)
}
func delete() {
do {
try realm.write {
realm.deleteAll()
}
} catch {
print("\(error)")
}
}
}
- ViewController에서 ```c //save let memo = Memo() memo.title = “Test” memo.content = “ContentTest” memo.date = “2020-05-13” try! realm.write { realm.add(memo) }
//load
let data = realm.objects(Memo.self)
print(data) //여기서 data는 Results
//delete (do try catch 형태로 해줘야 에러가 발생되지 않는다). 그냥 deleteAll()으로 하면 안됨 do { try realm.write { realm.deleteAll() } } catch { print(“(error)”) } ```