CloudKit查询:日期之后而不是数组

时间:2017-09-15 00:14:13

标签: nspredicate cloudkit ckquery

我试图查询来自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

我在the docs中看到不允许执行OR谓词。我很乐意在这里不必再提出两个问题。关于如何解决这个问题的任何想法?

1 个答案:

答案 0 :(得分:0)

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