2011-03-09 77 views
3

我正在使用可視化編輯器來創建核心數據模型。我無法弄清楚如何設置提取屬性的謂詞,以便它使用謂詞中的源實體的屬性。在Core Data實體中,如何在其fetched屬性的謂詞中使用源實體的屬性?

例如,我有EntityA,屬性searchId。我也有EntityB屬性id。我想要做的是找到EntityB的所有實例,它們的id等於EntityAsearchId atrribute。當我嘗試編輯謂詞時,左側和右側的下拉列表僅包含目標的鍵,在本例中爲EntityB,無法從EntityA中選擇任何鍵。

我知道你可以通過編程方式創建謂詞,但我想知道是否有一種方法可以使用可視化編輯器來完成。

回答

6

這有點痛苦。

首先,在謂詞編輯器控件中,單擊謂詞最後一個字段右側的空白處,然後選擇「variable」。然後在該字段中輸入「FETCH_SOURCE.attributeName」。

FETCH_SOURCE(或代碼中的$ FETCH_SOURCE)是一個特殊的變量,它表示發起獲取屬性的對象。還有FETCHED_PROPERTY($ FETCHED_PROPERTY),它將返回實際的NSFetchedPropertyDescription對象。

所以,你的謂詞將在文本看起來像:

id==$FETCH_SOURCE.searchId 

蘋果顯然不是非常自豪的這種功能,因爲他們已經埋葬它深藏在庫比提諾的神祕地下墓穴的任何引用。我花了四天才第一次弄清楚了。

+0

謝謝!這正是我所期待的。 – jsrivo 2011-03-10 08:48:14

+0

任何想法如何在XCode4中做到這一點? – Devarshi 2011-06-28 14:48:51

+0

'編輯器>添加FetchRequest'爲您提供可視化編輯器。我還沒有用過它。 – TechZen 2011-06-28 20:05:27

相關問題