我的主要問題是:
是否有指定的域模型,然後被從新創建的模型時,僅使用默認值的方式,但是,當境界從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