CloudKit Неожиданное выражение для NSPredicate

Я использую CloudKit и хочу выполнить поиск записей на основе их строковых полей.

Документы Apple говорят, что это способ сделать поиск по полям записи по токенам:

Чтобы выполнить поиск полей записи по токенам, используйте специальный оператор self. Поиск по токену выполняет поиск во всех полях, для которых включен полнотекстовый поиск, которые по умолчанию являются строковыми полями. В листинге 5 показан пример, который ищет в полях записи строки токенов bob и smith. Каждое отдельное слово рассматривается как отдельный токен с целью поиска. Сравнения нечувствительны к регистру и диакритическим знакам. Эти строки токенов могут быть найдены в одном поле или в нескольких полях, но все токены должны присутствовать в записи, чтобы считаться совпадающими.

Листинг 5: Соответствие полю, содержащему токенизированную строку

NSPredicate predicate = nil;
predicate = [NSPredicate predicateWithFormat:@"self contains 'bob smith'"];

Когда я ввожу эту точную строку для предиката, я получаю исключение.

Код:

predicate = [NSPredicate predicateWithFormat:@"self contains 'bob smith'"];
query = [[CKQuery alloc] initWithRecordType:kCKRecord_Level predicate:predicate];

Исключение:

*** Terminating app due to uncaught exception 'CKException', reason: 'Unexpected expression: SELF CONTAINS "bob smith"'

Есть идеи, что может быть не так? Кто-нибудь имел успех с этой предикатной строкой и CloudKit?

https://developer.apple.com/library/prerelease/ios/documentation/CloudKit/Reference/CKQuery_class/index.html

Ответы на вопрос(1)

Ваш ответ на вопрос