2014-03-01 40 views
2

假設我有以下對象如何使用NSPredicate查找具有數組數組中的特定屬性的對象?

class A { 

NSArray *arrayOfB; 
} 

class B { 

NSString *name; 

} 

現在,我的陣列作爲像下面,並且每個A包含其屬性arrayOfB內B的10個對象。

NSArray *arrayOfAs; //contains objects of A 

如何,我可以得到一個取決於A的內部B的名稱屬性的特定的匹配,通過使用NSPredicate的對象?

我試過Google搜索等,甚至寫了各種NSPredicate風格,但沒有成功。任何人都可以啓發我如何做到這一點?

這是我試過到目前爲止:

NSPredicate *p = [NSPredicate predicateWithFormat:@"(SELF.name BEGINSWITH[c] %@ IN SELF.arrayOfB)",myText]; 

NSArray *mySearchedArrayOfAs = [arrayOfAs filteredArrayUsingPredicate:p]; 

但我遇到錯誤,提示「無法解析謂詞」。

回答

4

我認爲你需要使用ANY運營商,像這樣:

NSPredicate *p = [NSPredicate predicateWithFormat:@"ANY arrayOfB.name BEGINSWITH[c] %@", myText]; 
+0

我沒有安裝此刻進行檢查。讓我知道如果這不起作用,我會刪除答案。 – dasblinkenlight

+0

好的,我會檢查這一點,看看。謝謝。 – CodenameLambda1

+1

哦,是的,它做到了!非常感謝。 (y) – CodenameLambda1

相關問題