CloudKit 查询:在日期之后且不在数组中



我正在尝试从 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谓词。我希望不必在这里进行两个单独的查询。关于我如何做到这一点的任何想法?

"OR"选项不适用于谓词(我不知道这是否是CloudKit的错误)。您必须进行多个查询。

最新更新