我有三个模特,父母,孩子,孙子。我已经能够正确保存和链接数据。现在,我希望能够在删除父级时删除子级和孙级对象。
父母拥有孩子的财产,孩子拥有孙子的财产。
示例:
class Parent: Object {
dynamic var name = ""
var child = List<Child>
}
class Child: Object {
dynamic var name = ""
dynamic var parent: Parent?
var grandChild = List<GrandChild>
}
class GrandChild: Object {
dynamic var name = ""
dynamic var child: Child?
}
(这不是我的实际代码,所以如果我搞砸了这里的任何内容,请忽略任何错误。)
我想要做的是删除父对象,这将使子对象中的“父”属性为nil。然后我想删除子对象,如果它的父属性是nil。然后为grandChild做同样的事情。换句话说,做一个级联删除对象。
所以,比如:
如果Object:Child的父属性为nil,则删除Object。
这似乎是一个需要解决的简单问题,但我无法在这些主板上找到很多来自Realm的嵌套数据模型示例,或者我没有以正确的方式提出问题来找到它们。
答案 0 :(得分:0)
当前不支持Realm中的级联删除,因此您必须手动删除子实例。您可以在删除父项之前使用LinkingObjects
删除所有子项,或只查询删除父项后parent == nil
的所有子实例并删除它们。在此处查看更多可能的解决方案:https://github.com/realm/realm-cocoa/issues/1186