Подтвердить что ты не робот

Как я могу сделать CKQuery без предиката?

Мне нужно запросить все типы записей без фильтрации. Я пробовал два пути:

let query = CKQuery(recordType: "Pm", predicate: nil)
let query = CKQuery(recordType: "Pm", predicate: NSPredicate(format: ""))

Я получил ошибку:

'NSInvalidArgumentException', причина: 'Невозможно разобрать формат string ""

Как сделать?

4b9b3361

Ответ 1

Вы не можете выполнить запрос без предиката, но у NSPredicate есть метод только для этого, а в Swift он используется через инициализатор:

init(value: Bool) -> NSPredicate // return predicates that always evaluate to true/false

Использование выглядит следующим образом.

let predicate = NSPredicate(value: true)

Ответ 2

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

[NSPredicate predicateWithFormat:@"TRUEPREDICATE"]

или, в Swift:

NSPredicate(format: "TRUEPREDICATE")

Это эффективно работает, не имея никакого предиката.