领域。从ListBase中删除对象

时间:2016-10-30 06:21:22

标签: swift realm

我有不同的领域模型。他们有List属性。我想通过从列表属性中删除对象的通用方法。所以我做了以下事情:

if let list = self[property.name] as? ListBase {
    list._rlmArray.removeAllObjects()
}

但这只是清除列表属性,而不删除域中的对象。我发现的唯一方法是:

if let list = self[property.name] as? ListBase {

    while list.count > 0 {
        let object = list._rlmArray.firstObject()
        let any = object as Any

        if let theObject = any as? Object {
            realm.delete(theObject)
        }
    }
}

上面的代码有效并且不会产生任何警告。但它看起来很难看。

1 个答案:

答案 0 :(得分:0)

您可以使用dynamicList(_ propertyName: String)按名称检索List属性,而不是下标。

if property.type == .array {
    try! realm?.write {
        realm?.delete(dynamicList(property.name))
    }
}
相关问题