Swift 避免域中重复对象的正确方法?
假设我们有一个领域对象,它有一个“title”属性作为主键。检查具有相同键(标题)的对象是否存在并相应添加的正确方法是什么?没有任何错误Swift 避免域中重复对象的正确方法?,swift,realm,Swift,Realm,假设我们有一个领域对象,它有一个“title”属性作为主键。检查具有相同键(标题)的对象是否存在并相应添加的正确方法是什么?没有任何错误 var personThatExists = Person.objectsWhere("id == %@", primaryKeyValueHere).firstObject() if personThatExists { //don't add } else { //add our object to the DB }
var personThatExists = Person.objectsWhere("id == %@", primaryKeyValueHere).firstObject()
if personThatExists {
//don't add
} else {
//add our object to the DB
}
我已经在网站上看到了上述解决方案
我认为应该有更好的方法。根据您是想用新数据更新现有对象,还是不做任何事情(如果已经存在),您有两种选择 如果已经存在Realm.object,则可以使用
Realm.object(of type:,forPrimaryKey:)
如果要在对象存在时更新对象,如果不存在则添加对象,只需使用realm.add(:,update:)
let existingPerson = realm.object(ofType: Person.self, forPrimaryKey: primaryKey)
if let existingPerson = existingPerson {
// Person already exists, act accordingly
} else {
// Add person
}
do {
try realm.write {
realm.add(personObject,update:true)
}
}