我查询Parse.com中的数据并将其保存在本地的Realm数据库(iOS /
swift)中.每个对象都有一个唯一的属性(A),但也有一个可能是一样的属性(B).避免将具有相同属性B的对象添加到领域数据库中最有效的方法是什么?
提前致谢.
提前致谢.
解决方法
您可以在对象上设置主键,以便Realm保证DB中只有一个对象.
class Person: RLMObject {
dynamic var id = 0
dynamic var name = ""
override class func primaryKey() -> String {
return "id"
}
}
您仍然需要自己检查该对象是否已在DB中.它将基于主键(通过属性(A)或属性(B)查找对象)来获取对象.那么如果对象存在,不要添加,如果不存在,将其添加到DB.
这样的东西
var personThatExists = Person.objectsWhere("id == %@",primarykeyvalueHere).firstObject()
if personThatExists {
//don't add
} else {
//add our object to the DB
}
如果使用主键,并且不关心正在更新的对象的值,则可以使用createOrUpdate方法.如果不存在,领域将创建一个新的对象,否则它将使用传入的对象更新存在的对象.
希望这可以帮助