2010-08-28 80 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];