2016-10-30 14 views
0

私は異なる領域モデルを持っています。彼らはリストのプロパティを持っています。私はリストのプロパティからオブジェクトを削除するための普遍的な方法を作りたい。だから私は次のようにした:領域。 ListBaseからオブジェクトを削除する

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

dynamicList(_ propertyName: String)を使用して、Listのプロパティをサブスクリプトの代わりに名前で取得できます。

if property.type == .array { 
    try! realm?.write { 
     realm?.delete(dynamicList(property.name)) 
    } 
} 
+0

ありがとうございます!完璧に動作します。 – Roman

関連する問題