【问题标题】:Setting property in CoreData object results in save error在 CoreData 对象中设置属性会导致保存错误
【发布时间】:2012-12-19 17:30:32
【问题描述】:

当我更新一个 NSManagedObject 并保存它时,我得到一个错误:操作无法完成。 (可可错误 1560。)

  • 该对象已经在数据库中,所以实际上我在保存时正在更新它
  • 当我在修改之前保存对象时,没有错误
  • 我通过设置对象的属性来修改它。使用 KVP 也有同样的效果
  • 原始保存(对象已在不久之前创建)和更新后的保存都在主线程中完成。该对象永远不会被其他线程触及。

方法 validateForUpdate: 总是返回 NO。即使对象没有被更改,我也不确定这个方法是否应该返回 YES:如果对象 X 保存时没有错误,然后我调用 validateForUpdate: 它返回 NO。

有什么想法吗?

【问题讨论】:

  • 谢谢! detailErrors 的迭代帮助了我!关系属性是空的,但是是必需的。我还不明白为什么一开始保存 X 就没有错误。似乎直到之后的第一次更新,CoreData 才注意到没有填充这个强制属性。我想这与缓存有关。无论如何,我现在可以解决我的问题了。

标签: core-data


【解决方案1】:

您更改的属性对其值有限制。您的更新违反了它们,因此使您无法保留无效的更改。

【讨论】:

猜你喜欢
  • 2017-08-23
  • 1970-01-01
  • 1970-01-01
  • 2018-03-22
  • 2019-07-10
  • 2018-11-04
  • 1970-01-01
  • 1970-01-01
  • 2017-08-01
相关资源
最近更新 更多