2015-02-05 19 views

risposta

9

L'eliminazione di record dalla dashboard è molto lavoro se è necessario eliminare più record.

La soluzione migliore consiste nel creare un recordType separato che conterrà un record per ogni giorno. Quindi, nei record che desideri eliminare per quel giorno, imposta un CKReference su quel particolare giorno record e imposta la sua azione su CKReferenceAction.DeleteSelf

Dopodiché devi solo rimuovere il record del giorno e tutti i record correlati verranno rimossi. La rimozione di quel record potrebbe essere facilmente eseguita dalla dashboard o potresti creare funzionalità nella tua app o potresti creare una seconda app per le azioni amministrative.

4
func deleteAllRecords() 
{ 
    let publicDatabase: CKDatabase = CKContainer.defaultContainer().publicCloudDatabase 

    // fetch records from iCloud, get their recordID and then delete them 
    var recordIDsArray: [CKRecordID] = [] 

    let operation = CKModifyRecordsOperation(recordsToSave: nil, recordIDsToDelete: recordIDsArray) 
    operation.modifyRecordsCompletionBlock = { 
     (savedRecords: [CKRecord]?, deletedRecordIDs: [CKRecordID]?, error: NSError?) in 
     print("deleted all records") 
    } 

    publicDatabase.addOperation(operation) 
} 
5

provare qualcosa di simile:

let publicDb = CKContainer.defaultContainer().publicCloudDatabase 

let query = CKQuery(recordType: "RECORD TYPE", predicate: NSPredicate(format: "TRUEPREDICATE", argumentArray: nil)) 
publicDb.performQuery(query, inZoneWithID: nil) { (records, error) in 

    if error == nil { 

     for record in records! { 

      publicDb.deleteRecordWithID(record.recordID, completionHandler: { (recordId, error) in 

       if error == nil { 

        //Record deleted 

       } 

      }) 

     } 

    } 

} 

"TIPO RECORD" dovrebbe essere il vostro tipo di record. Spero che questo ti aiuti.

+2

questo è molto più lento a causa del ciclo for, se avete più di 3-5 voci questo richiederà più tempo di un minuto !! dovresti utilizzare una eliminazione batch come questa: http://stackoverflow.com/a/36414506/530884 – Shaybc

+0

Quel ciclo inizia diverse operazioni asincrone una dopo l'altra! Quante connessioni concorrenti sei disposto ad avere? Lo serializzerei in qualche modo. –

Problemi correlati