为什么实体不能具有与一个强制性反向关系的唯一性约束?有两个实体:
财产:名称
关系:部门(对一,非可选)
property:title(唯一约束)
关系:人(对多,可选)
模型将无法在iOS 9,XCode 7.0.1中编译错误配置的实体错误:
配置错误的实体:实体部门不能具有唯一性约束和一个强制性反向关系Person.department
更新: 问题仍然与XCode 8.3.1相关.
简短答案:
潜在的问题很可能是由sqlite标准引起的。对此我不确定。但是,很有可能是由于sqlite的限制。我在互联网上找到了一些帖子,人们在一张桌子上遇到多重约束的问题,这很可能是两张桌子变通办法起作用的原因。
长答案:
已经很晚了,但是我还是希望能有所帮助。
当您的实体具有唯一约束和强制关系时,就会发生这种情况。我猜这是因为iOS 9.0中增加了独特的约束行为。但是,您可以通过两种方式解决此问题:
您删除唯一约束或使关系成为可选。您可以在代码中处理可选关系。但这不是一个好的解决方案。
要么
您可以使用解决方法。您可以同时拥有。您可以创建具有唯一约束的超类。但是,这也不会没有问题。
我们有三个实体。A,B和C。
A是您的超类,B是A的子类,C也是A的子类。对其属性primaryKey具有唯一的约束。保存B和C的实例时,不能使B和C具有相同的primaryKey。因为CoreData会将两者都管理为A。
您可以将A更改为具有两个属性:
现在,您可以将primaryKeys映射到originalPrimaryKey,并且在设置originalPrimaryKey时,可以将字符串primaryKey属性设置为CLASS_NAME。{originalPrimaryKey}。这将使您具有预期的行为。但是您必须为primaryKeys添加解决方法。
| 归档时间: |
|
| 查看次数: |
1300 次 |
| 最近记录: |