一对多关系恢复问题
huanglins opened this issue · 1 comments
huanglins commented
我有一个类似于这样的一对多模型:
class Person: Object {
@objc dynamic var id = NSUUID().uuidString
@objc dynamic var name = "Jim"
@objc dynamic var isDeleted = false
let dogs = LinkingObjects(fromType: Dog.self, property: "owner")
}
class Dog: Object {
@objc dynamic var id = NSUUID().uuidString
@objc dynamic var name = ""
@objc dynamic var owner: Person?
}
当我拉取全部数据到本地时,我应该通过设置 Dog
的 owner
属性来恢复一对多的关系
realm.dynamicObject(ofType: ownerType, forPrimaryKey: primaryKeyValue)
但在一种情况下,如果在 Person
对象还没有写入到本地的时候,通过 dynamicObject
来获取 Person
对象是不存在的,就不能正确的恢复这个关系。
我查看了关于 list
这里关于解决关系恢复的问题,在单个对象属性设置的时候也应该需要相应的关系恢复逻辑。希望考虑解决一下。
wonderffee commented
According to plivesey 's reply in issue #140 , you may solve it by always resolving the sync objects in order, in other words, parents are always written first, followed by children. Also plivesey post his commit link in his own fork, see plivesey@24c2b84 for more detail