공부방/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") {

}

 

 

 

반응형