在对象之间创建多个关系

时间:2010-08-28 07:06:45

标签: iphone core-data ipad

我有一个包含2个实体的核心数据模型:Collection和Image。 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在保存数据后最终为null。就好像1:N关系使1:1关系无效,即使它们使用单​​独的键和访问器。

知道如何才能让它发挥作用吗?

2 个答案:

答案 0 :(得分:0)

“keyImage”变量名冲突?

coll.keyImage = keyImageObject;

[coll addImagesObject:keyImageObject];

答案 1 :(得分:0)

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

也许将属性'isKeyImage'添加到Image实体,然后您就可以使用该属性集拉出单个图像。

或者,将关键图像与图像分开。不幸的是,我认为你需要在Core Data中定义一个单独的KeyImage实体,它与Collection自己的关系。我很高兴得知你可以在同一个实体之间建立多个链接。