我有一个核心数据设计,其中包含使用关系的多个表。我的数据库是SQLite。对于更新,我从JSON导入数据并使用此方法:
[NSEntityDescription insertNewObjectForEntityForName:entityName inManagedObjectContext:context].
我在核心数据中添加了独特的约束。如果我更新的是与另一个对象的关系的实体,它将失去连接。
例如:实体“ person”包含与“ pet_id”一对一的关系。如果我更新“宠物”,它将更改其ID,而“人”仍指向旧ID,因此它们不再相关。有办法避免这个问题吗?
我不认为这在任何地方都有记载。听起来这是正在发生的事情:
为了维持这种关系,您的新实例必须已经具有该关系的正确值。您实质上是在要求约束匹配系统忽略新实例中关系值不同的事实,而是接受其他属性的新值。
我认为您的期望是完全合理的,但是对于当前的实现不支持它,我也并不感到惊讶。我建议向Apple提交有关此问题的错误,并研究基于非约束的方法来保持数据唯一。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句