CloudKit Query: после даты, а не в массиве

Я пытаюсь запросить записи из CloudKit, которые либо имеют более новую modificationDate чем то, что у меня есть на месте, или, может быть, то, чего у меня нет вообще.

Записи, которые у меня уже есть, хранятся в recordNames, Дата date,

Я могу сделать это с двумя предикатами, как это:

//Modification Date
let predicateDate = NSPredicate(format: "modificationDate > %@", date)

//Records I have already
let predicateRecordName = NSPredicate(format: "NOT (recordName IN %@)",recordNames)

//Combined 'OR'
let predicate = NSCompoundPredicate(orPredicateWithSubpredicates: [predicateDate, predicateRecordName])

Но когда я пытаюсь объединить это как соединение OR предикат или объединить их в один предикат, я получаю ошибку:

Неверный предикат... CKErrorDomain Code=12... не является предикатом сравнения, ck_isComparisonError=true

Я вижу в документах, что делает OR Предикат не допускается. Я хотел бы не делать два отдельных запроса здесь. Любые идеи о том, как я могу это осуществить?

1 ответ

Опция "ИЛИ" не работает с предикатами (я не знаю, является ли это ошибкой CloudKit). Вы должны сделать несколько запросов.

Другие вопросы по тегам