gpt4 book ai didi

arrays - 如何在不同数据上使用 NSPredicate 和 NSPredicateEditor(多个谓词?)

转载 作者:行者123 更新时间:2023-12-02 05:41:41 24 4
gpt4 key购买 nike

我有一个文件路径数组,并且我的 UI 中有一个 NSPredicateEditor 设置,用户可以在其中组合 NSPredicate 来查找文件。他应该能够按名称、类型、大小和日期进行过滤

我现在遇到几个问题:

  • 我只能从编辑器中获取一个谓词对象。当我使用“predicateForRow:”它返回(null)
  • 如果用户想按名称和大小或日期过滤文件,我不能再在我的数组上使用这个谓词了,因为那些其中不包含信息

我可以将一个谓词拆分成不同的谓词吗? 将其转换为 NSString 对象,然后搜索每个 @"OR "| @"AND "并将组件分成一个数组,然后 将每个 NSString 转换为新谓词?

<小时/>

在 NSPredicateEditor 设置中,我有一些“左表达式”选项:键路径、常量值、字符串、整数、 float 日期。我想向用户显示一个包含“名称”、“类型”、“日期”、“大小”的下拉菜单。但是生成的谓词自动看起来像这样:

"name" MATCHES[c] "nameTest" OR "type" MATCHES[c] "jpg" OR size == 100

由于数组中充满了字符串,因此搜索“name”、“type”等时,这些字符串不会响应 @"myString"*.name*m ,因此过滤器始终返回 0 个对象。有没有办法在菜单中显示名称、类型、大小和日期,但将“self”写入谓词而不需要手动执行?

我已经在 Apple 官方教程、Stackoverflow、Google,甚至 Youtube 上进行了搜索,以找到线索。这个问题困扰了我快一周了。谢谢你的时间!如果您需要更多信息,请告诉我!

最佳答案

您来对地方了! :)

I can only get one predicate object from the editor.

正确。它是一个 NSPredicateEditor,而不是 NSPredicatesEditor。 ;)

When I use "predicateForRow:" it returns (null)

我不确定我是否会使用该方法。我的一般经验法则是在很大程度上忽略 NSPredicateEditorNSRuleEditor 的子类,主要是因为它是一个高度特化的子类,以至于许多父类(super class)方法都无法做到这一点对谓词编辑器很有意义(就像所有关于条件、行选择等的东西)。它们可能在某种程度上相关,但如果确实相关,我还没有弄清楚如何

要从编辑器获取谓词,您需要:

NSPredicate *predicate = [myPredicateEditor objectValue];

If the user wants to filter the file by name AND size or date

您的意思是(name = [something]) AND (size = [something] OR date = [something])

如果是这样,如果您将嵌套模式设置为“复合”,NSPredicateEditor 就可以做到这一点。

I can't just use this predicate on my array anymore because those information are not contained in it

您需要什么信息?

Can I split up a predicate into different predicates without converting it into a NSString object, then search for every @" OR " | @" AND " and seperating the components into an array and then converting every NSString into a new predicate?

是的,但这是一个的想法。这很糟糕,因为 NSPredicate 已经包含了您需要的所有信息,将其转换为不同的格式并进行字符串操作是没有必要的,并且可能会导致复杂化(例如如果有人可以输入“name”的值,如果他们输入“OR”会发生什么?)。

我很难弄清楚你想要做什么。听起来您有一个 NSString 对象数组,您想要根据用户创建的谓词进行过滤?如果是这样,那么这些 namedatesize 键路径意味着什么?你想做什么?

关于arrays - 如何在不同数据上使用 NSPredicate 和 NSPredicateEditor(多个谓词?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11371525/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com