我有一個對象有很多狗的人。 App有單獨的頁面,它顯示只是狗和其他的頁面,它顯示了人的狗領域 - 無法用現有的主鍵值創建對象
我的模型如下
class Person: Object {
dynamic var id = 0
let dogs= List<Dog>()
override static func primaryKey() -> String? {
return "id"
}
}
class Dog: Object {
dynamic var id = 0
dynamic var name = ""
override static func primaryKey() -> String? {
return "id"
}
}
我存儲在境界的人。人有詳細信息頁面,我們可以獲取並展示他的狗。如果狗已經存在,我更新該狗的最新信息並將其添加到人的狗列表中,否則創建新狗,保存並將其添加到人員列表中。這在coredata中有效。
// Fetch and parse dogs
if let person = realm.objects(Person.self).filter("id =\(personID)").first {
for (_, dict): (String, JSON) in response {
// Create dog using the dict info,my custom init method
if let dog = Dog(dict: dict) {
try! realm.write {
// save it to realm
realm.create(Dog, value:dog, update: true)
// append dog to person
person.dogs.append(dog)
}
}
}
try! realm.write {
// save person
realm.create(Person.self, value: person, update: true)
}
}
在試圖與他的狗,更新的人,境界拋出異常 不能與現有的主鍵值創建對象
凡在'person.dogs.append(配方)的'recipe'值'是從哪裏來的?這是不是很清楚你想在這裏做什麼,對不起! – TiM
對不起,它一定是person.dogs.append(狗)。我只是創建/更新狗,並將其添加到人的狗@TiM –
啊好吧。我想我現在看到這裏發生了什麼。我會添加一個答案。 :) – TiM