坚持一个 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 桥接版本) .
祝你好运!
在我的应用程序中,我有一个继承自 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 桥接版本) .
祝你好运!