坚持一个RLMObject

时间:2015-09-12 02:24:08

标签: ios swift realm

在我的应用程序中,我有一个继承自RLMObject的CustomUser。

我想知道如何仅为此CustomUser对象存储1个对象?

func saveUser() {
     let realm = RLMRealm.defaultRealm()

     realm.beginWriteTransaction()
     realm.addObject(customUser)
     realm.commitWriteTransaction()
}

此代码每次运行时都会向数据库写入一个额外的对象。代码多次运行后导致数据库中的许多对象。

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

最简单的方法是在继续并添加新对象之前查询Realm以检查是否有任何先前保存的对象。

func saveUser() {
     let realm = RLMRealm.defaultRealm()

     if CustomUser.allObjects().count > 0 {
          return   
     }

     realm.beginWriteTransaction()
     realm.addObject(customUser)
     realm.commitWriteTransaction()
}

在更高级的说明中,如果要显式引用单个CustomUser对象,可以使用Realm的主键功能直接查询该特定对象。有关如何设置类以使用主键的Realm's website的更多信息(在Objective-C部分中,因为它看起来像是在使用Objective-C桥接版本)。

祝你好运!