2016-05-14 39 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,它的伟大工作! –

相关问题