【发布时间】:2020-05-02 00:53:10
【问题描述】:
假设我有一个 Realm 架构,其中我有一个父类和子类,在 List 中。像这样:
class Parent: Object{
@objc dynamic var name = ""
let kids = List<Kid>()
}
class Kid: Object{
@objc dynamic var name = ""
}
假设随着时间的推移,每当删除 Kid 时,它只会从 Parent 对象中删除,而不会从 Realm 中删除:
let realm = try! Realm()
let parent = realm.objects(Parent.self)
realm.beginWrite()
for kid in parent.kids{
if let index = parent.kids.index(of: kid){
parent.kids.remove(at: index)
}
}
try! realm.commitWrite()
我知道我可以在与从parent 中删除相同的写入事务中从领域中删除kids:
let kids = parent.kids
realm.delete(kids)
...但我有理由不这样做。
有没有办法在 Realm 数据库中查询所有不属于 parent 的 kids?例如,如果您要打开我的 Realm,您可以看到 100 kid 对象,但如果您查看父对象,则只有 kid 对象中的 5 实际附加到 parent 对象。
我有一个 Realm 的特殊用例,我实际上不想删除子 List 项目,除非我知道它们没有父项。是否可以查询所有无父kids 的领域?
【问题讨论】:
-
这很简单,所以我添加了另一个答案。
标签: realm realm-list