使用 NSPredicate 过滤核心属性和实体

Posted

技术标签:

【中文标题】使用 NSPredicate 过滤核心属性和实体【英文标题】:Using NSPredicate to filter on both Core attribute and entity 【发布时间】:2012-04-14 05:14:38 【问题描述】:

我在核心数据中有两个实体(称它们为 entityOne 和 entityTwo)。我在它们之间有一个 entityOne>entityTwo 关系。

我现在正在尝试编写一个 NSPredicate 以在以下基础上获取 entityTwo 对象:

    获取 entityTwo 与指定 entityOne 对象有关系的对象。

    过滤掉那些entityTwo对象,它们的属性之一没有值。

我最好在 NSPredicate 中同时执行这两项操作,还是有更好的方法?

我正在尝试以下方法:

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(attribute <> "") AND (relationship == entityOne"];
    [request setPredicate:predicate];

任何关于编码的指针都已完全收到。

【问题讨论】:

【参考方案1】:

你可以像这样使用谓词:

[NSPredicate predicateWithFormat:@"entityOneRelationship = %@ AND attribute.length > 0",specifiedEntityOne];

很常见的方法。

【讨论】:

啊,这是我错了的字符串语法。您建议的代码检索属性设置为 nil 的实体。如何检索具有除 nil 以外的属性的实体?我已经尝试过!= 和 。非常感谢

以上是关于使用 NSPredicate 过滤核心属性和实体的主要内容,如果未能解决你的问题,请参考以下文章

NSPredicate 使用核心数据实体的属性

使用 NSPredicate 过滤核心数据中的对象

使用 NSPredicate 根据数组属性过滤 CoreData 项列表

iPhone如何使用NSPredicate按父实体过滤Core Data?

在一对多关系中使用 NSPredicate 进行过滤

使用 NSPredicate 进行核心数据实体搜索