ios - 基于 3 个 NSPredicates 动态过滤数组

标签 ios objective-c nsstring nspredicate

我有一个 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/

相关文章:

ios - 遍历 sender.superview 中的按钮

ios - Facebook session 关闭

ios - 地址簿允许后代码执行延迟

c++ - 用于将 JPEG 图像转换为 TIFF 格式的 C、C++ 或 Objective-C 代码

ios - Objective C TableView 清晰 Json 解析

ios - ios中的动态单元格高度在swift中以编程方式使用约束

ios - 我们可以在 Swift 上重用结构吗?或者还有其他办法吗?

objective-c - ".text"和 "setText:"之间的区别?

ios - 将 UILabel 内容格式化为美国电话号码格式

cocoa - 使用 NSString 中断 NSString,获取用于中断/分隔的字符串之后的所有内容