如何查询CloudKit的recordID IN [CKRecordID]

Rob*_*erg 9 nspredicate ios cloudkit ckquery ckrecord

我的谓词想要排除已经下载并在[CKRecordID]中可用的一些记录.现在我可以查询1个CKRecordID [0],但不能查询[CKRecordID]数组.我该如何查询数组?

let excludeIDs: [CKRecordID]
Run Code Online (Sandbox Code Playgroud)

这有效:

let pred1 = NSPredicate(format: "NOT(recordID = %@)", excludeIDs[0])
Run Code Online (Sandbox Code Playgroud)

但这不是:

let pred1 = NSPredicate(format: "NOT(recordID IN %@)", excludeIDs)
Run Code Online (Sandbox Code Playgroud)

错误:loadImageCompareRecordIDsAndEndDateThatHaveNotEnded错误:无效谓词:无效谓词:数组成员必须符合CKRecordValue :("","","","","")(CKRecordID)

代码的其他一般部分:

    let sort = NSSortDescriptor(key: "creationDate", ascending: false)
    let query = CKQuery(recordType: MyRecordTypes.ImageCompare, predicate: pred1)
    query.sortDescriptors = [sort]
    let operation = CKQueryOperation(query: query)
    operation.desiredKeys = ["endDate"]
    operation.resultsLimit = 50
Run Code Online (Sandbox Code Playgroud)

Rob*_*erg 8

使用[CKReference]而不是[CKRecordID]解决了它.