2013-11-23 32 views
0

我想篩選一個NSDrayaries的NSArray,但是我想使用一個,兩個甚至三個NSPredicate值篩選結果?如何使用兩個NSPredcates過濾NSArray

目前我正在過濾我的數組。

NSPredicate *predicateString = [NSPredicate predicateWithFormat:@"parts == %@", filterString];//keySelected is NSString itself 
     NSMutableArray *filteredArray = [NSMutableArray arrayWithArray:[currentParts filteredArrayUsingPredicate:predicateString]]; 
     sortedItemsArray = [filteredArray mutableCopy]; 

但我不知道我如何使用兩個謂詞來做到這一點?

另外兩個謂詞單獨看起來像上面那個接受不同的鍵。

NSPredicate *predicateString = [NSPredicate predicateWithFormat:@"area == %@", filterString]; 

NSPredicate *predicateString = [NSPredicate predicateWithFormat:@"item == %@", filterString]; 

我當時的想法是,也許你可以有像

NSPredicate *predicateString = [NSPredicate predicateWithFormat:@"stage == %@ area == %@", filterString, areaflterstring]; 

,但我不認爲那可能..希望它會在給你的想法我正在努力實現。

任何幫助,將不勝感激

+0

相關:http://stackoverflow.com/q/10611362/457406 –

回答

1

這是可能的,但你需要告訴謂詞如何將部分組合,如:

NSPredicate *predicateString = [NSPredicate predicateWithFormat:@"stage == %@ AND area == %@", filterString, areaflterstring]; 

您也可以使用NSCompoundPredicate了多項結合謂詞。

+0

真棒謝謝你。現在將研究NSCompoundPredicate :) – HurkNburkS