CoreData - 对子关系实体的NSFetchRequest和过滤器

时间:2013-02-08 14:18:13

标签: iphone core-data

好的,我说有很多类型为“Office”的实体,并且它有一个名为“employees”的关系,这是一个包含“Employee”对象的多对多关系。 “Employee”有一个名为“lastName”的属性。

鉴于此,我需要进行一次返回,返回一个具有>的Office对象数组。 0名员工但在退回的办公室中,员工关系中的Employee对象已被过滤掉,只包括lastName等于“Smith”的Employee对象。

我可以很容易地获取所有Office对象,然后遍历它们并删除名称与Smith不匹配的所有员工,但是会删除商店中的那些对象。

我假设这里需要SUBQUERY,但我似乎无法正确过滤。有什么想法吗?

1 个答案:

答案 0 :(得分:2)

您希望谓词中包含SUBQUERY

[NSPredicate predicateWithFormat:@"SUBQUERY(employees, lastName, lastName LIKE[cd] %@).@count > 0", @"Smith"]

这会在每个employees关系上执行子查询,测试提供的字符串的lastName,并计算至少有一个这样的员工。