我的主要问题是:
是否有指定的域模型,然后被从新创建的模型时,仅使用默认值的方式,但是,当境界从realm.add(thing, update: true)
通话领域添加的对象与更新 - 忽略遗漏值
自动此更新模型的上下文一些信息被忽略...
我,拉人进口商脚本从API获取数据并将其导入领域。忽略所有的循环和嵌套结构,它是不是初步认识,我基本上有这样的:
let thing = SomeThing(value: [
"id" : jsonData["id"].int!,
"title" : jsonData["title"].string!,
"system" : system
])
try! realm.write {
realm.add(thing, update: true)
}
和我SomeThing
模型是这样的:
class SomeThing : Object {
dynamic var id = 0
dynamic var title = ""
dynamic var system : System?
dynamic var favourited = false
override static func primaryKey() -> String? {
return "id"
}
}
的favourited
布尔不是由API提供,在用户喜欢该对象时更新。但是,由于模型默认值为false,当领域发现Thing已存在时,它会更新值并将favourited
重置为false
。我知道显而易见的答案是太拉对象从领域,并自己更新它(如果它存在),所以我可以手动控制什么得到更新(这是我会做什么,如果没有更好的选择),但有可能是100年甚至1000年的东西,所以我宁愿尽量避免首先为这个问题拉出对象。
感谢您的回复。我使用主键,所以当我告诉领域添加对象时,如果主键存在,它会更新它。我试图避免将对象从数据库中拉出来,因为那样会(我想)会减慢速度。我发现'realm.create'解决了它! – TRG