Xcode 4中的(复合)谓词构建器 -- 它在哪里?

11

首先,这个问题与 在Xcode 4中使用Core Data的图形谓词构建器 密切相关。 然而,我还没有足够高的评分来发表评论,由于我没有答案可提供,所以我用更具体的细节提出了一个新问题。

我一直在苦苦思索,所以我会提供尽可能多的细节...

问题:苹果公司的Core Data文档仍然参考Xcode 3,并展示了高度复杂的图形谓词构建器用于获取属性和获取请求模板。这包括能够图形化地创建任意复杂性的复合谓词,例如:

enter image description here

这显然是一个非常强大的工具,可以有效地使用Core Data。就我所知(和其他人),在Xcode 4中,这个功能要么丢失了,要么被隐藏得非常深。根据上面链接的SO问题,我们至少知道,在XCode 4中,如果添加一个获取请求:

enter image description here

您随后可以在右侧窗格中访问一个非常基本的图形谓词编辑器:

enter image description here

但是这个图形化编辑器没有提供苹果文档中所示的复杂性(显然仍与XCode 3绑定)。而且,正如其他SO问题中提到的那样,这仍然无法回答如何访问任何类型的图形谓词构建器以获取Fetched Properties的问题。
据我所知,如果添加了一个Fetched Property,则会出现在您的Core Data编辑器中,但没有任何访问谓词构建器的方法。要扩展:
在Xcode 3中,详细信息窗格提供了一个“编辑谓词”按钮,打开了谓词构建器:

enter image description here

这是XCode 4中可比较的视图:

enter image description here

如图所示,没有“编辑谓词”按钮。

问题:

1)所有这些特性在XCode 4中在哪里?如上所示,到目前为止我发现的仅接近谓词生成器的东西是非常简单的获取请求编辑器,它没有任何复合/复杂谓词的能力。

再次强调:除非我漏掉了一些显而易见的东西,否则在创建获取请求时出现在XC4中的这个简单的FetchRequest编辑器不是这个问题的答案。它唯一的条件选项是选择以下内容[无/全部/任意]是否正确。这甚至不能接近XCode 3的Predicate Builder的功能,具有复杂的关系和可选变量等。

2)同样的问题,也是针对Fetched Properties。

我假设苹果公司没有仅仅删除在XCode 4中以图形方式创建复杂复合谓词的功能,对于Fetched Properties和Fetch Request Templates都是如此。但是我已经尽力找出它们的位置了...

提前感谢。

1个回答

14

在使用Xcode 4的谓词构建器时,按住option键。右侧的+号将变为...,并允许您添加额外的子谓词。任意复杂性仍然存在; 只是访问方式不同。

编辑: 在Xcode 4中,图形化的谓词编辑器似乎仅适用于保存的获取请求,而不适用于获取属性。对于获取属性,看起来现在只能手动键入谓词。


哇,这是一种非常晦涩的添加子谓词的方式。我永远不会想到这个,非常感谢BJ,真的很感激。既然你显然比我更了解这个问题,我会认为你对获取属性的正确性是正确的,并将其标记为我的接受答案。但是,如果你发现了使用图形编辑器来获取属性的方法,请务必告诉我! - Murdock
Murdock:选项点击行为实际上是NSPredicateEditor的标准行为。例如,在构建Mail.app中的规则时,您可以使用相同的方法。 - BJ Homer
BJ: 很高兴知道这个。这个项目是我第一次涉足Core Data,所以其中一些功能对我来说仍然显得比较晦涩。不过总体而言,我真的很喜欢它;有一些很棒的内置工具... - Murdock
哇,我已经搜索这个答案几个小时了。谢谢。我从未想过要使用选项键。 - RyanM

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接