我正在学习RxSwift,并希望使用Realm和RxRealm。我已经实现了删除和插入新项目,但我在更新一个值时遇到了问题。
在数据库单例内部我有这个功能:
func updateNew(for primaryKey: Int) {
if let itemToUpdate = realm.object(ofType: Item.self, forPrimaryKey: primaryKey) {
try! realm.write {
itemToUpdate.isNew = !itemToUpdate.isNew
}
}
}
在我的视图模型中使用RxRealm Observable.changeset并订阅结果和更改。我可以看到,如果我为primaryKey = 2调用此函数,那么在subscribe
我得到:
deleted: [1]
inserted: [2]
Observable.changeset(from: itemsResult!).subscribe(onNext: { results, changes in
if let changes = changes {
print(results)
print("deleted: \(changes.deleted)")
print("inserted: \(changes.inserted)")
print("updated: \(changes.updated)")
...
}
为什么没有调用changes.updated
?