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). Вы должны сделать несколько запросов.