我正在使用ReactiveKit 1.x.它有一个非常有用的ObservableCollection<T>
,它允许您监视集合的更改。就我而言,我正在使用Dictionary<String,String>
ObservableCollection生成类型为CollectionEventChange<T>
的事件,它包含insert
,update
,delete
的属性。对于字典,这些是DictionaryIndex<String,String>
。
为了检查delete
和update
条目的内容,我似乎需要保留对前一个集合的引用。
是否可以使用这些属性中列出的元素在事件的collection
属性中查找已更改的条目?
我错过了什么吗? (我想解决方案可能与ReactiveKit无关,只是一般使用Swift Dictionaries。)
答案 0 :(得分:5)
我认为你应该使用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).")
}
}
方法来获取上一个事件,并从中获取之前的事件。
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" preserveAspectRatio="xMidYMid" width="320" height="86" viewBox="0 0 320 86">
<defs>
<style type="text/css">
.cls-1 {
fill: transparent;
fill-rule: evenodd;
stroke: #fff;
stroke-width: 6px;
}
</style>
<clipPath id="clip">
<use xlink:href="#cls-1-path"/>
</clipPath>
</defs>
<path d="M319.604,36.098 C319.409,...5.551 103.736,5.687 103.192,5.881 Z" class="cls-1" id="cls-1-path" clip-path="url(#clip)"/>
</svg>