ReactiveKit:如何获取 ObservableCollection 的更改条目的值?

ReactiveKit: How do you get the values of changed entries for ObservableCollection?

我正在使用 ReactiveKit 1.x。它有一个非常有用的 ObservableCollection<T>,它允许您监视对集合的更改。就我而言,我将它与 Dictionary<String,String>

一起使用

ObservableCollection 生成类型为 CollectionEventChange<T> 的事件,它包括 insertupdatedelete 的属性。对于字典,这些是 DictionaryIndex<String,String>.

为了检查 deleteupdate 条目的内容,我似乎需要保留对以前集合的引用。

是否可以使用这些属性中列出的元素在事件的 collection 属性 中查找更改的条目?

我错过了什么吗? (我想这个解决方案可能与 ReactiveKit 没有任何关系,只是 Swift 字典的一般使用。)

我认为你应该使用 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).")
  }
}