1

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

4

1 回答 1

0

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

于 2018-06-12T08:01:42.063 回答