2015-10-02 12 views
8

मेरी भविष्यवाणी कुछ रिकॉर्ड्स को बाहर करना चाहता है जो पहले से डाउनलोड और [सीकेआरकॉर्डिड] में उपलब्ध हैं। अब मैं 1 सीकेआरकॉर्डिड [0] से पूछताछ कर सकता हूं, लेकिन [सीकेआरकॉर्डिड] सरणी नहीं। मैं सरणी से कैसे पूछ सकता हूं?रिकॉर्ड आईडी के लिए क्लाउडकिट से पूछताछ कैसे करें [सीकेआरकॉर्डिड]

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 

उत्तर

8

[CKReference] और नहीं [CKRecordID] इसे हल का उपयोग करना।

+1

धन्यवाद, अजीब CKRecordID एकल तुलना के लिए काम करता है – malhal

+0

क्या आप कोड नमूना प्रदान कर सकते हैं? –

+1

@SamBallantyne बस अपनी रिकॉर्ड आईडी को CKReferences में कनवर्ट करें जैसे refs = myRecords.map ({CKReference (recordID: $ 0.record.recordID, action: .None)}) – DogCoffee

संबंधित मुद्दे