2015-10-02 22 views
8

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

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

をしかし、これはしていません::

let excludeIDs: [CKRecordID] 

これは動作します

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

ERROR: loadImageCompareRecordIDsAndEndDateThatHaveNotEndedエラー:無効な述語:無効な述語:アレイメンバーがCKRecordValueに準拠している必要があります( ""、 ""、 ""、 "" 、 "" )(CKRecordID)

他の一般的なコードの部分:

答えて

8
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 

[CKReference]としない[CKRecordID]を解決使用。

+1

ありがとう、奇妙なCKRecordIDは単一の比較のために働きます – malhal

+0

コードサンプルを提供できますか? –

+1

@SamBallantyneあなたのレコードIDをCKReferencesに変換するだけです。たとえば、refs = myRecords.map({CKReference(recordID:$ 0.record.recordID、action:.None)}) – DogCoffee

関連する問題