5

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

ObservableCollection 产生一个 类型的事件CollectionEventChange<T>,它包括insert, update,的属性delete。对于字典,这些是DictionaryIndex<String,String>.

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

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

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

4

1 回答 1

8

我认为您应该使用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).")
  }
}
于 2016-05-14T16:25:25.577 回答