9

私の述語は、[CKRecordID] で既にダウンロードされ、利用可能な一部のレコードを除外したいと考えています。これで、1 つの CKRecordID[0] をクエリできますが、[CKRecordID] 配列はクエリできません。配列を照会するにはどうすればよいですか?

let excludeIDs: [CKRecordID]

これは機能します:

let pred1 = NSPredicate(format: "NOT(recordID = %@)", excludeIDs[0])

しかし、これはしません:

let pred1 = NSPredicate(format: "NOT(recordID IN %@)", excludeIDs)

エラー: 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
4

2 に答える 2

8

[CKRecordID] ではなく [CKReference] を使用すると解決しました。

于 2015-10-05T09:54:50.103 に答える