【发布时间】:2012-07-07 01:21:17
【问题描述】:
我有一个文件路径数组,我的 UI 中有一个 NSPredicateEditor 设置,用户可以在其中组合一个 NSPredicate 来查找文件。他应该能够按名称、类型、大小和日期进行过滤。
我现在有几个问题:
- 我只能从编辑器中获得一个谓词对象。当我使用 "predicateForRow:" 它返回 (null)
- 如果用户想按名称和大小或日期过滤文件,我 不能再在我的数组上使用这个谓词,因为那些 信息不包含在其中
我可以将一个谓词分成不同的谓词吗? 将其转换为 NSString 对象,然后搜索每个 @" OR " | @" AND " 并将组件分成一个数组,然后 将每个 NSString 转换为新的谓词?
在 NSPredicateEditor 设置中,我有一些“左表达式”选项: 键路径、常量值、字符串、整数、浮点数和日期。我想用“名称”、“类型”、“日期”、“大小”向用户显示一个下拉菜单。但是生成的谓词自动看起来像这样:
"name" MATCHES[c] "nameTest" OR "type" MATCHES[c] "jpg" OR size == 100
因为数组中填充了字符串,搜索“name”、“type”等,而这些字符串不响应 @"myString"*.name*m,过滤器总是返回 0 个对象。有没有办法在菜单中显示名称、类型、大小和日期,但不手动将“self”写入谓词?
我已经在 Apple 官方教程、Stackoverflow、Google 甚至 Youtube 上搜索过,以找到线索。这个问题困扰了我将近一个星期。谢谢你的时间!如果您需要更多信息,请告诉我!
【问题讨论】:
标签: arrays macos nspredicate nspredicateeditor