我有一个 NSDictionaries 的 NSMutableArray。我希望能够动态过滤。
比如我有3种类型的过滤器
- area
- item
- type
如果选择了区域,那么我想用区域谓词过滤数组,但是如果用户随后也选择过滤项目,则当前过滤的区域数组也会应用项目过滤器。
但是,如果区域过滤器被删除,那么我想显示新的项目过滤器。
当引入 type 时,它变得更加复杂,但是我正在努力让它正常工作并且不知道从哪里开始它的逻辑。
我可以让数组根据最后选择的谓词进行过滤。因此,如果我选择区域,则当前过滤器的项目将只是项目,而不是两者。
最佳答案
尝试这样的事情:
NSMutableArray *predicates = [NSMutableArray array];
if (...) {
[predicates addObject:...];
}
NSCompoundPredicate *p = [[NSCompoundPredicate alloc] initWithType:NSAndPredicateType subpredicates:predicates];
如果需要,您可以在其中将各个谓词添加到数组中。这是假设至少需要应用一个谓词。
关于ios - 基于 3 个 NSPredicates 动态过滤数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20169240/