我想过滤NSDrray的NSArray,但是我想使用一个,两个甚至三个NSPredicate值来过滤结果?
目前我正在通过这样做来过滤我的数组。
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 :(得分:1)
这是可能的,但您需要告诉谓词如何组合部分,例如:
NSPredicate *predicateString = [NSPredicate predicateWithFormat:@"stage == %@ AND area == %@", filterString, areaflterstring];
您也可以使用NSCompoundPredicate
组合多个谓词。