我刚刚开始关注RxSwift并且是初学者。有没有办法观察数组中各个元素的变化?我有一个存储Item对象数组的对象,我希望在Item对象的任何属性发生变化时得到通知。到目前为止,我有这个:
struct Item {
var dayOfTheWeek = Variable<Int>(1)
init(dayOfTheWeek: Int) {
self.dayOfTheWeek.value = dayOfTheWeek
}
}
class ItemListener {
var items = Variable<[Item]>([])
var itemsUpdated: Observable<[Item]>
init() {
self.itemsUpdated = items.asObservable()
}
func queue(item: Item) {
self.items.value.append(item)
self.itemsUpdated.subscribe(onNext: {
$0.forEach{
print("dayOfTheWeek \($0.dayOfTheWeek.value)")
}
})
}
}
如果我这样做
let itemListener = ItemListener()
var item = Item(dayOfTheWeek: 5)
itemListener.queue(item: item)
它会观察添加到数组中的任何项目。将项目添加到数组后,如何观察数组中每个项的状态更改?如果我更新数组中项目的dayOfTheWeek,那么ItemListener将如何获得dayOfTheWeek对项目进行更改的通知?
item.dayOfTheWeek = 2 // ItemListener wants to get notified of this update