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>
的事件,它包括 insert
、update
、delete
的属性。对于字典,这些是 DictionaryIndex<String,String>
.
为了检查 delete
和 update
条目的内容,我似乎需要保留对以前集合的引用。
是否可以使用这些属性中列出的元素在事件的 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).")
}
}
我正在使用 ReactiveKit 1.x。它有一个非常有用的 ObservableCollection<T>
,它允许您监视对集合的更改。就我而言,我将它与 Dictionary<String,String>
ObservableCollection 生成类型为 CollectionEventChange<T>
的事件,它包括 insert
、update
、delete
的属性。对于字典,这些是 DictionaryIndex<String,String>
.
为了检查 delete
和 update
条目的内容,我似乎需要保留对以前集合的引用。
是否可以使用这些属性中列出的元素在事件的 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).")
}
}