Как я могу сделать CKQuery без предиката?
Мне нужно запросить все типы записей без фильтрации. Я пробовал два пути:
let query = CKQuery(recordType: "Pm", predicate: nil)
let query = CKQuery(recordType: "Pm", predicate: NSPredicate(format: ""))
Я получил ошибку:
'NSInvalidArgumentException', причина: 'Невозможно разобрать формат string ""
Как сделать?
Ответы
Ответ 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")
Это эффективно работает, не имея никакого предиката.