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