为什么我的子查询谓词中的LIKE [c]与此名称不匹配?

时间:2010-06-19 17:51:01

标签: iphone core-data nspredicate

我有两个实体:Department和DepartmentInfo。每个部门都有一个或多个DepartmentInfo对象。在DepartmentInfo内部,有一个departmentName属性。

我想获取具有特定departmentName的所有Department对象。所以我为Department实体创建了一个NSFetchRequest,并使用这个获取请求:

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SUBQUERY(departmentName, $s, $s.departmentName LIKE[c] %@).@count > 0", @"Marketing"];

它有效,但是:LIKE [c]没有!我必须与确切的部门名称相匹配。如果我这样做,我将无法匹配:

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SUBQUERY(departmentName, $s, $s.departmentName LIKE[c] %@).@count > 0", @"Mar"];

这里可能有什么问题?

2 个答案:

答案 0 :(得分:0)

由于Jason Coco没有将此作为答案发布,我这样做了:

  

使用@“Mar *”,您将匹配

答案 1 :(得分:0)

这里使用SUBQUERY是不必要的。您可以使用以下方法获得相同的结果:

ANY departmentInfo.departmentName LIKE[c] 'Mar*'

对一组Department个对象执行该操作,它将起作用。