공부방/iOS
Tip of find data in realm
soycrab
2019. 8. 9. 14:26
Realm에서 데이터를 찾을때
realm.objects(Info.self).filter(age > 10) 방식으로 찾으면
실제 테이블이 아직 없거나 할경우 App 이 죽게 된다.
따라서 Object 에 PrimaryKey를 사용한다고 가정하에
아래와 같은 방법을 사용하면 옵셔널을 포함하여 안전하게 데이터를 가져올수 있다.
realm.object(ofType: Info.self , forPrimaryKey: "0")
좀더 다양한 모델을 Generic 한 방법으로
여러 곳에서 공통으로 사용할 함수를 만들고 싶다면,
아래와 같이 선언하여 사용 가능하다.
func getSafetyDataInRealm<T: Object>(_ className: T.Type, _ primaryKey: String?) -> T? {
guard primaryKey != nil else {
return nil
}
let realm = try! Realm()
if let languagePack = realm.object(ofType: T.self , forPrimaryKey: primaryKey!) {
return languagePack
} else {
return nil
}
}
사용 방법
if let info = getSafetyDataInRealm(Info.self, "0") {
}
반응형