2017-09-18 15 views
1

を取得RealmCollectionChange私は犬レルム変更されたプロパティ

class Owner: Object { 

    dynamic var name: String? 

    let list = List<RString>() 

} 

の一覧性を有している「所有者」クラスを持っている私は、問題があるOwner

owners?.addNotificationBlock { [weak self] (changes: RealmCollectionChange) in 

    updateUI() 

} 

のリストに通知トークンを追加しましたRStringのプロパティが変更され、所有者の1人がリストにRStringが変更されると、この通知がトリガーされます。

RStringオブジェクトに起こる変更を無視して通知をトリガーしないようにすることです

objectChangeのように「ignoringProperties」をcollectionChangesに追加する方法はありますか?または他の回避策ですか? 変更されたプロパティの名前を取得し、手動で無視するようなのですか?

私はレルム公式ビデオのいずれかで、このコードを見てきましたが、collectionChangesためRealmCollectionChange列挙型のあなたの助けのための

let token2 = state.addNotificationBlock(ignoringProperties: ["noisyProp"], 
            block: { change in 
    // handle change and avoid being notified for properties we don't care about 
}) 

source

おかげ

答えて

1

.update場合に、それを複製することができませんでした更新通知ハンドラに渡されるのは、クエリから返されたResultsに含まれる変更されたオブジェクトのインデックスのみです。したがって、今のところ、更新通知が特定のプロパティによってトリガされないようにすることはできないようです。代替案として

、あなたは別のDogオブジェクトを作成し、それをownerId性を付与し、あなたの所有者オブジェクトから犬listプロパティを削除することによって、異なるデータをモデリング考えるかもしれません。これにより、Dogが変更されたときに、Ownerのクエリ結果で更新通知が表示されなくなります。

+0

これは私が現在やっていることですが、公式のレルムページで例を読むと、別の方法が存在する可能性があると思っていて、例を見つけることができませんでした。 –

関連する問題