2016-06-27 25 views
0

Es tut mir leid, habe eine dumme einfache Frage. Ich möchte alle erstellten Datensätze auflisten, die älter als 24 Stunden sind. Das Abfragefeld für das Erstellungsdatum wird im Dashboard festgelegt. Ich habe diesen Code ... aber ich kann mich nicht um das Problem kümmern.Abrufen von iCloudKit-Datensätzen älter als 24 Stunden

ich diesen Code bekam ...

let container = CKContainer(identifier: "iCloud.blah") 
    let publicDB = container.publicCloudDatabase 
// 24 hours ago 
    let date = NSDate(timeInterval: -60.0 * 1440, sinceDate: NSDate()) 
    let predicate = NSPredicate(format: "creationDate < %@", date) 
    let query = CKQuery(recordType: "Collection", predicate: predicate) 

Aber das wird mir alle Datensätze, die in den letzten 24 Stunden erstellt wurden; Ich will sie nicht, ich möchte alle Aufzeichnungen, die älter als 24 Stunden sind. Mein Datensatz enthält nur ein Feld, und das ist ein Asset. Beginne zu glauben, dass mein Problem ist zum Teil ...

enter image description here

Die Größe Index, wenn nicht entfaltet hat sieht es viel versprechend? 0 Bytes?

Antwort

0

Ok, ich denke, ich habe die Antwort auf mein Problem gefunden. Dieser Code ist gut; Mein Fehler bestand darin, nur die RecordIDs auszuwählen, als ich Platten wählte. Ich musste auch die Metadaten auswählen.

readerOperation = CKQueryOperation (Abfrage: query) readerOperation.desiredKeys = [ "record.recordID.recordName", "record.creationDate"];

readerOperation.recordFetchedBlock = { (record) in 
     self.records2Erase.append(record.recordID) 
    } 
    readerOperation.queryCompletionBlock = {(cursor, error) in 
      if error != nil { 
       dispatch_async(dispatch_get_main_queue()) { 
        self.showAlert(message: error!.localizedDescription) 
       } 
      } else {     
       print("records2Erase since \(date) \(self.records2Erase)") 
      } 


    }