Il mio predicato vuole escludere alcuni record che sono già stati scaricati e disponibili in [CKRecordID]. Ora posso interrogare 1 CKRecordID [0], ma non la matrice [CKRecordID]. Come posso interrogare la matrice?Come richiedere CloudKit per recordID IN [CKRecordID]
let excludeIDs: [CKRecordID]
Questo funziona:
let pred1 = NSPredicate(format: "NOT(recordID = %@)", excludeIDs[0])
Ma questo non lo fa:
let pred1 = NSPredicate(format: "NOT(recordID IN %@)", excludeIDs)
ERRORE: loadImageCompareRecordIDsAndEndDateThatHaveNotEnded Errore: non valido predicato: predicato non validi: membri dell'array devono essere conformi alle CKRecordValue: ( "", "", "", "" , "" ) (CKRecordID)
Le altre parti generali del codice:
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
Grazie, strano CKRecordID funziona per singoli confronti – malhal
Puoi fornire un esempio di codice? –
@SamBallantyne Basta convertire l'ID del record in CKReferences come let refs = myRecords.map ({CKReference (recordID: $ 0.record.recordID, action: .None)}) – DogCoffee