Почему LIKE[c] в моем предикате подзапроса не соответствует этому имени?

У меня есть две сущности: Department и DepartmentInfo. Каждый отдел имеет один или несколько объектов DepartmentInfo. Внутри DepartmentInfo есть атрибут DepartmentName.

Я хочу получить все те объекты отдела, которые имеют определенное имя отдела. Поэтому я делаю 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"];

Что здесь может быть не так?


person dontWatchMyProfile    schedule 19.06.2010    source источник
comment
Используйте @Mar*, и вы совпадете   -  person Jason Coco    schedule 19.06.2010


Ответы (2)


Поскольку Джейсон Коко не опубликовал это как ответ, я делаю это:

Используйте @"Mar*" и вы совпадете

person dontWatchMyProfile    schedule 25.05.2011

Использование SUBQUERY здесь необязательно. Вы можете добиться тех же результатов, используя:

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

Выполните это для массива объектов Department, и это сработает.

person Dave DeLong    schedule 25.05.2011