我有不同的领域模型。他们有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)
}
}
}
上面的代码有效并且不会产生任何警告。但它看起来很难看。
答案 0 :(得分:0)
您可以使用dynamicList(_ propertyName: String)
按名称检索List
属性,而不是下标。
if property.type == .array {
try! realm?.write {
realm?.delete(dynamicList(property.name))
}
}