Core data NSPredicateEditor中的自定义复合行

Core data NSPredicateEditor中的自定义复合行,core-data,nspredicateeditor,Core Data,Nspredicateeditor,假设我们有两个核心数据实体: 实体栏 属性bar1 属性bar2 实体食品 属性foo1 属性foo2 许多关系栏 我想使用NSPredicateEditor搜索“具有带(bar1='term1'和bar2='term2')的条形图的任何Foo”。也就是说,同一条中有多个匹配项 使用某种自定义复合谓词,它有这样一个UI 图1 图2 我知道如何创建顶级NSPredicateEditorRowTemplates,以便根据条形图属性(Foo.Bar.bar1)搜索Foo。 但是这些都是

假设我们有两个核心数据实体:

  • 实体栏

    • 属性bar1
    • 属性bar2
  • 实体食品

    • 属性foo1
    • 属性foo2
    • 许多关系栏
我想使用NSPredicateEditor搜索“具有带(bar1='term1'和bar2='term2')的条形图的任何Foo”。也就是说,同一条中有多个匹配项

使用某种自定义复合谓词,它有这样一个UI

图1

图2

我知道如何创建顶级NSPredicateEditorRowTemplates,以便根据条形图属性(Foo.Bar.bar1)搜索Foo。 但是这些都是与Foo属性子预测一起合成的,所以我不能将搜索限制为同一条中的多个属性

选择要搜索的条形图属性时,列表应仅限于条形图属性

在同一个NSPredicateEditor中甚至可以有多种类型的复合谓词吗


定制NSPredicateEditor的代码少得出奇…

谢谢您的编辑,Hitesh!不能组合简单行(foo1)和复合行(条形图包含项)。可以添加复合行模板(任何/所有/无条匹配以下内容),但似乎不可能有foo行和bar行。是的,可以用与简单键(foo1)相同的方式匹配键路径(bar.bar1)。这些条件也可以分组为复合谓词。但是这样一个复合谓词的子谓词总是在所有条上运行。我还没有找到一种方法来匹配同一对象中的条件(bar1='term1'和bar2='term2')。-那么多个复合谓词类型是不可能的吗?它们不必出现在弹出按钮中。NSRuleEditor有一个insertrowatinex:withType:asSubrowOfRow:animate:,看起来很有希望,但NSPredicateEditorRowTemplates的类型是私有的。该类型是
NSRuleEditorRowType
NSRuleEditorRowTypeSimple
NSRuleEditorRowTypeCompound
。无法更改行的类型或将属性弹出窗口限制为某些行中的Foo属性和其他行中的Bar属性。查看NSRuleEditor.h中的注释,它解释了
NSRuleEditor
的工作原理
nspredicateditor
从行模板创建两个条件树。谢谢。标题中的文档比在线文档要好得多。为NSRuleEditor创建子类可能并不太困难。