iOS核心数据是否支持多对一关系?

时间:2014-03-02 21:25:18

标签: ios core-data

我习惯在Java应用程序中使用Hibernate,并且在创建从ObjectA到ReferenceObjectB的链接时,常见的是多对一关系。 ReferenceObjectB可以是原子类,与任何其他对象没有任何关系。 ReferenceObjectB可用于多个其他对象。

在我的iOS应用中,我使用Core Data作为数据模型。我创建了一个与ReferenceObjectB具有一对多关系的ObjectA,并且创建时没有反向关系,因为我希望关系像Hibernate中的Many-To-One一样。

似乎工作。但是,Xcode会发出一个警告:“配置错误的属性:TimeItem.extraData应该有一个反向”这是一个应该注意Core Data的警告,还是在这种情况下它只是噪音?

3 个答案:

答案 0 :(得分:0)

警告是有原因的。 Core Data在内部使用关系的反转来管理添加和(特别是)删除对象时的数据存储内容。

通常,每个关系都应该有一个反向。

答案 1 :(得分:-1)

不是强制性的,但您会收到警告。阅读这篇文章:http://shanecrawford.org/2008/49/a-warning-about-your-inverse-relationships/

答案 2 :(得分:-2)

在创建对象时正确操作对象需要双面关系,或者将一个实体设置为其他实体的属性。核心数据可以自动设置一些关系,您不需要手动执行此操作。

总的来说,使用单方关系并不总是危险的。