使用核心数据在 NSPredicate 中调用对象的方法

Posted

技术标签:

【中文标题】使用核心数据在 NSPredicate 中调用对象的方法【英文标题】:Calling method on object in NSPredicate with Core Data 【发布时间】:2015-06-09 12:34:16 【问题描述】:

我有一个与“员工”有一对多关系的“职位”实体。我想用NSPredicate 做这样的事情

[position.employees containsObject:meEmployee]

有一个调用来执行 NSPredicate with block,但遗憾的是它不能与 CoreData 一起使用。

我该怎么做?

【问题讨论】:

如何在不使用谓词的情况下获取核心数据实体? 显示到目前为止您是如何尝试使用谓词的 我只是加载所有位置,然后使用 nspredicate 和该数组上的块过滤它们 NSFetchRequest 有一个可以添加的NSPredicate 属性。把它放在那里。 【参考方案1】:

如果您要获取具有任何 employees 匹配 meEmployeeposition 实体,那么您可以使用这样的谓词:

NSPredicate *predicate = [NSPredicate predicateWithFornat:@"ANY employees == %@", meEmployee];

但如果employees 的逆关系是position,您可以通过以下方式实现相同的效果:

meEmployee.position

【讨论】:

以上是关于使用核心数据在 NSPredicate 中调用对象的方法的主要内容,如果未能解决你的问题,请参考以下文章

我如何在单个提取请求中调用两个 NSPredicate。核心数据 iOS Swift

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

使用 NSPredicate 获取核心数据对象数组?

NSPredicate 与核心数据问题

带有核心数据对象的 NSPredicate

NSPredicate 获取具有 NSDate 日期范围内的日期属性的核心数据对象