cocoa - 如何编写核心数据谓词来过滤特定的子实体类型?

标签 cocoa core-data nspredicate

我有一个名为 FObject 的超实体,它有几个子实体,例如 Foo1、Foo2 和 Foo3。我有许多表格 View ,它们应该显示有关子实体的不同集合的信息,例如,一个仅显示 Foo2s 和 Foo3s,而另一个则显示所有这些。

假设我正在 FObject 上获取数据,如何编写谓词来过滤子实体类型?

我尝试了“entity.name IN %@”并提供了实体名称列表,但这不起作用。

或者我应该过滤返回的结果?

或者我应该添加一个对类型进行编码的属性并使用“type IN %@”?

最佳答案

如果您有不同的 TableView 来显示各个子实体的实例,那么您可能每个表都有 NSArrayController,对吗?如果是这样,为什么不将数组 Controller 的实体名称设置为所需的子实体的名称?

这是提取请求中使用的名称(您可以在其中指定要提取的实体名称)。获取请求中使用的谓词用于按属性或关系进行过滤,而不是按实体名称进行过滤。

关于cocoa - 如何编写核心数据谓词来过滤特定的子实体类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1776257/

相关文章:

objective-c - Block_copy是递归的吗?

objective-c - 将 string 转换为 int 会更改值

ios - 如何避免因小数据模型更改而产生巨大的 .xcmappingmodel 文件?

objective-c - 在 NSPredicate 中访问数字 NSDictionary 键

iphone - 如何创建 NSPredicate 以查找具有前导数值的条目?

cocoa - 不太了解 NSMetadataQuery

image - cocoa mac osx 网格显示不同尺寸的图像

swift - 在 NSURLConnection 的 sendAsynchronousRequest 问题中使用函数变量的完成处理程序

ios - 设置两个新创建的Core Data对象的关系

iphone - 核心数据错误:由于未捕获的异常 'NSInvalidArgumentException'而终止应用程序,原因: 'Can'对对象0进行正则表达式匹配