我有一个与Bond 框架功能MutableObservableArray
绑定的对象。observeNext
在应用程序第一次打开时,我从用户默认值中获取数组并将其插入到这个空数组中。
我的问题是,在我将元素插入数组后,observeNext
函数调用了三次而不是一次。可能是什么问题?
var list = MutableObservableArray<Task>([])
_ = self.list.observeNext(with: { element in
if element.diff.count != 0 {
if element.diff.deletes.count >= 1 && element.collection.count == 0 {
self.restoreUserDefaults(with: false)
} else {
self.saveListToUserDefaults(list: element.collection)
}
}
})
插入功能:
if let savedTask = userDef.object(forKey: self.userDefaultsKeyForList) as? Data {
let decoder = JSONDecoder()
if let loadedList = try? decoder.decode([Task].self, from: savedTask) {
self.list.batchUpdate({ (a) in
a.insert(contentsOf: loadedList, at: 0)
})
}
}
编辑:我认为当它第一次用它初始化数组时,[]
它也会进入observeNext。正常吗?