【发布时间】:2012-12-19 17:30:32
【问题描述】:
当我更新一个 NSManagedObject 并保存它时,我得到一个错误:操作无法完成。 (可可错误 1560。)
- 该对象已经在数据库中,所以实际上我在保存时正在更新它
- 当我在修改之前保存对象时,没有错误
- 我通过设置对象的属性来修改它。使用 KVP 也有同样的效果
- 原始保存(对象已在不久之前创建)和更新后的保存都在主线程中完成。该对象永远不会被其他线程触及。
方法 validateForUpdate: 总是返回 NO。即使对象没有被更改,我也不确定这个方法是否应该返回 YES:如果对象 X 保存时没有错误,然后我调用 validateForUpdate: 它返回 NO。
有什么想法吗?
【问题讨论】:
-
谢谢! detailErrors 的迭代帮助了我!关系属性是空的,但是是必需的。我还不明白为什么一开始保存 X 就没有错误。似乎直到之后的第一次更新,CoreData 才注意到没有填充这个强制属性。我想这与缓存有关。无论如何,我现在可以解决我的问题了。
标签: core-data