我想过滤一个NSDictionaries的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];
但是我认为那是不可能的。
有可能,但是您需要告诉谓词如何组合各部分,例如:
NSPredicate *predicateString = [NSPredicate predicateWithFormat:@"stage == %@ AND area == %@", filterString, areaflterstring];
您也可以使用NSCompoundPredicate
组合多个谓词。