2010-08-28 77 views
0

我有一个包含两个实体的核心数据模型:集合和图像。 Colletion和Image之间存在一对多关系,由Collection侧的'images'访问器和Image侧的'collection'访问器反映。在对象之间创建多个关系

还有一种叫做keyImage的附加关系,它是Collection和Image之间的1:1关系。该集合中的一个图像是关键图像,我通过创建额外的1:1关系进行建模。这个在Collection中有一个叫做keyImage的存取器,在Image中有一个isKeyImageFor。

我可以使用这个模型大多好,但有一件事情是行不通的。

// Add an image as the key image. 
coll.keyImage = keyImage; 

// Add the image to the collection 
[coll addImagesObject:keyImage]; 

这两条线都独立工作。但是,如果我都这样做(图像应该都在集合中,并分配为keyImage),那么keyImage在保存数据后最终为空。就好像1:N关系会使1:1关系无效,即使它们使用不同的键和访问器。

任何想法如何让这个工作?

+0

源文件是怎么样的?你有自己编写代码吗? – 2010-08-28 10:37:06

回答

0

我不认为你可以让Core Data做到这一点。你创造了两个矛盾的关系。

也许添加一个属性'isKeyImage',图像实体,然后你就可以拉出与该属性集的单个图像。或者,保持关键图像与图像分开。不幸的是,我认为你需要一个在核心数据中定义的独立的KeyImage实体,它与Collection有自己的关系。我很高兴知道您可以在同一个实体之间建立多个链接。

0

“keyImage”变量名碰撞?

coll.keyImage = keyImageObject;

[coll addImagesObject:keyImageObject];