这是我从服务器获取的JSON示例:
[
{
id = 1,
name = "Tagged",
Tags = [
{
id = 1,
text = "Tag1"
}
]
},
{
id = 2,
name = "Tagged also",
Tags = [
{
id = 1,
text = "Tag1"
}
]
}
]
在将它们解析为对象之后,我有两个根对象,它们嵌套了相等的但不相同的标签,但仍具有相同的ID,我将其标记为primaryKey()。保存根对象数组时,我得到了预期的错误:
“由于未捕获的异常'RLMException'而终止应用程序,原因:'尝试创建具有现有主键值'1'的'Tag'类型的对象。”
有没有一种快速的方法来替换嵌套对象,使其链接到在编写基础对象时已经保存的链接?还是触发嵌套对象的自动更新?
编辑: 这是我的模型和保存方法:
class Title: Object {
@objc dynamic var id: String = ""
@objc dynamic var name: String?
let tags = List<Tag>()
override static func primaryKey() -> String? {
return "id"
}
}
class Tag: Object, BaseObject {
@objc dynamic var id: String = ""
@objc dynamic var text: String?
override static func primaryKey() -> String? {
return "id"
}
}
let titles: [Title] = getTitles()
try! Realm().write {
realm.add(tasks)
}