我查询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方法.如果不存在,领域将创建一个新的对象,否则它将使用传入的对象更新存在的对象.
希望这可以帮助