坚持一个 RLMObject

Persists One RLMObject

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

我想知道如何只为这个 CustomUser 对象存储 1 个对象?

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

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

这段代码每次 运行 都会向数据库写入一个额外的对象。代码运行多次

后导致数据库中有很多对象

有什么想法吗?

最简单的方法是查询 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 桥接版本) .

祝你好运!