2014-07-17 83 views
0

我與核心數據的工作和我的兩個表 列表 listItems中NSPredicate關係對象

listItems中有一個名爲「parentlist」有目的地設置爲「列表」

我關係試圖查詢時listItems所有listItems中whoes父是X(List對象)

我已經嘗試過這種方法,但它不工作

List* myList; // Initialized form other views 
NSPredicate *pred = [NSPredicate predicateWithFormat:[NSString stringWithFormat:@"List == %@",myList]]; 
+0

這是核心數據?或者是內存中的列表? – gillyD

+0

@gillyD核心數據 – Kassem

回答

1

如果你有一個反比關係listItems(如蘋果建議),你可以只使用:

myList.listItems 
+0

我已經結束了使用這種方法。謝謝 – Kassem

0

我假設你正在尋找的不是簡單地通過列表訪問時listItems其他的東西嗎?如果是這樣的話:
比較核心數據中的對象並不是真的那樣工作。 您可以通過以下兩種方式之一, 容易做到這一點:使用指定列表一個GUID在創建:

[[NSProcessInfo processInfo] globallyUniqueString] 

,並使用這個比較兩個列表。

更難:通過覆蓋比較和比較對象的方式,對對象實現比較功能,這種方式對您來說很有意義。

- (NSComparisonResult) compare : (List *) other; 

然後使用塊創建一個NSPredicate。

您也可以使用一個GUID並在比較函數中使用它,從而允許您在稍後進行擴展。

1

您的代碼有兩個問題:在謂詞中,您必須使用關係(「parentList」),而不是目標實體(「List」)。您不應該將字符串格式與 謂詞格式混合。

要獲得與給定列表中的所有listItems中,謂詞是

List* myList = ...; 
NSPredicate *pred = [NSPredicate predicateWithFormat:@"parentList == %@", myList];