Mein Prädikat möchte einige Datensätze ausschließen, die bereits heruntergeladen und in [CKRecordID] verfügbar sind. Jetzt kann ich 1 CKRecordID [0], aber nicht das Array [CKRecordID] abfragen. Wie kann ich das Array abfragen?Abfrage von CloudKit für Datensatz-ID IN [CKRecordID]
let excludeIDs: [CKRecordID]
Dies funktioniert:
let pred1 = NSPredicate(format: "NOT(recordID = %@)", excludeIDs[0])
Aber dies nicht:
let pred1 = NSPredicate(format: "NOT(recordID IN %@)", excludeIDs)
ERROR: loadImageCompareRecordIDsAndEndDateThatHaveNotEnded Fehler: ungültiges Prädikat: Ungültige Prädikat: Array Mitglieder CKRecordValue entsprechen müssen: ( "", "", "", "" , "" ) (CKRecordID)
Die anderen allgemeinen Teile des Codes:
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
Danke, seltsame CKRecordID funktioniert für einzelne Vergleiche – malhal
Können Sie ein Codebeispiel bereitstellen? –
@SamBallantyne Konvertieren Sie einfach Ihre Datensatz-IDs in CKReferences wie let refs = myRecords.map ({CKReference (recordID: $ 0.record.recordID, action: .None)}) – DogCoffee