У меня есть Cloudkit записи с «Keywords
поле» типа «text
»Как выполнить текстовый поиск в записях Cloudkit?
я могу использовать этот шаблон для извлечения только поле ключевых слов ВСЕХ записей
let predicate = NSPredicate(value: true)
let query = CKQuery(recordType: "Library", predicate: predicate)
var operation = CKQueryOperation(query: query)
operation.desiredKeys = ["KeyWords"]
operation.recordFetchedBlock = { [weak self] (record:CKRecord!) in
...
}
operation.queryCompletionBlock = { [weak self] (cursor:CKQueryCursor!, error:NSError!) in
...
}
self.publicDatabase!.addOperation(operation)
Я хотел бы ограничить возвращаемый записи тем, где поле KeyWords соответствует строке поиска, которую я предполагаю, означает предоставление подходящего предиката.
documentation указывает, что СОДЕРЖИТ только для списков, если вы не использовать само ключевое слово, которое ищет все текстовые поля
Однако, заменив декларацию предиката с:
let predicate = NSPredicate(format: "SELF CONTAINS[c] %@", searchString)
приводит
*** Terminating app due to uncaught exception 'CKException', reason: 'Predicate comparison options are not supported for expression: SELF CONTAINS[c]
и с использованием
let predicate = NSPredicate(format: "SELF CONTAINS %@", searchString)
приводит
*** Terminating app due to uncaught exception 'CKException', reason: 'Unexpected expression: SELF CONTAINS
Я уверен, что это что-то просто, но документы не являются полными еще