我有一个NSDictionaries的NSMutableArray。我希望能够动态过滤。 例如。 我有3种类型的过滤器
- area
- item
- type
如果area是chossen,那么我想用区域谓词过滤数组,但是如果用户选择过滤项目,那么当前过滤的区域数组也会应用项过滤器。
但是,如果删除了区域过滤器,那么我想显示新的项目过滤器。
当引入类型时它变得更加复杂,但是我正在努力让它正常工作并且不知道从哪里开始它的逻辑。
我可以根据最后选择的谓词来过滤数组。因此,如果我选择区域然后项目,则当前过滤器将只是不是两者的项目。
非常感谢任何帮助,提示或示例代码。
答案 0 :(得分:3)
尝试类似:
NSMutableArray *predicates = [NSMutableArray array];
if (...) {
[predicates addObject:...];
}
NSCompoundPredicate *p = [[NSCompoundPredicate alloc] initWithType:NSAndPredicateType subpredicates:predicates];
如果需要,可以将各个谓词添加到数组中。这假设至少需要应用一个谓词。