【问题标题】:Why does the LIKE[c] in my subquery predicate not match this name?为什么我的子查询谓词中的 LIKE[c] 与此名称不匹配?
【发布时间】:2010-06-19 17:51:01
【问题描述】:

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

我想获取所有具有特定部门名称的部门对象。所以我为 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"];

这里有什么问题?

【问题讨论】:

  • 使用@"Mar*" 你会匹配

标签: iphone core-data nspredicate


【解决方案1】:

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

使用@"Mar*" 你会匹配

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-06-25
      • 1970-01-01
      • 2016-12-14
      • 1970-01-01
      • 2016-11-02
      • 2012-03-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多