【发布时间】:2016-12-06 00:49:26
【问题描述】:
正如标题所说,我正在使用 KVO 观察 NSManagedObject 属性。方法override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) 触发了两次:第一次是为属性分配新值,第二次是我将上下文保存在CD 中。我在设置属性值后立即执行此操作。因此,我在代码中遇到了另一个问题,我的问题是为什么会发生这种情况,以及正确的方法是什么(设置属性,保存上下文并触发一次方法)。也许我不应该立即保存上下文?
【问题讨论】:
-
猜测:由于对象在您更新其值时被“弄脏”,因此在保存时,可能通过将更改保存到商店然后刷新实例上的所有属性来清除所有属性数据库中的内容。
标签: swift core-data nsmanagedobject key-value-observing