如何在 Swift 中使用 Realm 获取特定 parent 的所有子孙?

How to get all childs+grandchilds of a specific parent using Realm in Swift?

我有一个像这样的 3 个数据库设置 Parent->Child->Grandchild,到目前为止我可以设法获得特定的 child parent,但无法更深入。

class Parent : Object {
    @objc dynamic var name : String = ""
    let childs = List<Child>()
}

class Child : Object {
    @objc dynamic var name : String = ""
    let grandchilds = List<Grandchild>()
    var giveBirth = LinkingObjects(fromType: Parent.self, property: "childs")
}

class Grandchild : Object {
    @objc dynamic var name : String = ""
    var giveBirth = LinkingObjects(fromType: Child.self, property: "grandchilds")
}

我用这条线来计算 childs:

if let parent = itemsFromParentList?[indexPath.row] {    
    cell.detailTextLabel?.text = "\(parent.childs.count)"
}

但我想获得特定 parent 的所有 childs+grandchilds 的总数,例如 "How many childs and grandchilds do you have?".

非常感谢!!!

注意"child"的复数是"children"

如果我没理解错的话,你需要把parent的grandchildren平面映射,然后计数,然后加上children的计数[=11] =]

let childrenPlusGrandchildrenCount = parent.childs.flatMap { [=10=].grandchilds }.count + parent.childs.count