2016-05-14 51 views
2

我正在使用ReactiveKit 1.x.它有一個非常有用的ObservableCollection<T>,它允許你監視集合的變化。就我而言,我使用它Dictionary<String,String>ReactiveKit:如何獲取ObservableCollection的已更改條目的值?

的的ObservableCollection產生CollectionEventChange<T>類型的事件,它包括insertupdatedelete性能。對於字典,這些是DictionaryIndex<String,String>

爲了檢查deleteupdate條目的內容,我似乎需要保留對前一個集合的引用。

是否可以使用這些屬性中列出的元素來查找事件的collection屬性中已更改的條目?

我錯過了什麼嗎? (我猜這個解決方案可能與ReactiveKit沒什麼關係,只是普遍使用Swift字典。)

回答

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,它的偉大工作! –

相關問題