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