2016-05-14 8 views
2

私はReactiveKit 1.xを使用しています。それは非常に有用なObservableCollection<T>を持っています。コレクションの変更を監視することができます。私の場合、私はDictionary<String,String>ReactiveKit:ObservableCollectionの変更されたエントリの値はどのように取得されますか?

のObservableCollectionはタイプCollectionEventChange<T>のイベントを生成し、それを使っていて、それがinsertupdatedeleteのプロパティが含まれています。辞書の場合は、DictionaryIndex<String,String>です。

deleteupdateのエントリの内容を調べるために、以前のコレクションへの参照を維持する必要があるようです。

イベントのcollectionプロパティで変更されたエントリをルックアップするには、これらのプロパティにリストされている要素を使用できますか?

何か不足していますか? (私は解決策がReactiveKitとはまったく関係ないかもしれないと思っています。スウィフト辞書の一般的な使用です)

答えて

2

前のイベントを取得するにはzipPreviousメソッドと一緒に行くべきだと思います。

let collection = ObservableCollection(["key": "value"]) 

collection.zipPrevious().observe { (old, new) in 
    guard let old = old else { return } // `old == nil` on first event 

    for index in new.deletes { 
    let value = old.collection[index] 
    print("Deleted \(value).") 
    } 
} 
+0

ありがとうSrđan。間違いなく理にかなっています。私はReactiveKitが大好きです! –

関連する問題