Angenommen polls
ist die Datenquelle Array als [CKRecord]
deklariert, müssen Sie drei Dinge tun.
- den Datensatz aus dem Datenquellen-Array Erhalten bei dem angegebenen Index und entfernt sie aus den entsprechenden
CKDatabase
.
- Entfernen Sie den Datensatz aus dem Datenquellenarray (Sie tun dies bereits).
- Löschen Sie die Zeile in der Tabellenansicht mit dem Aufruf
deleteRowsAtIndexPaths
über [indexPath]
.
Zum Beispiel (publicDatabase
ist die tatsächliche CKDatabase
Instanz):
override func tableView(tableView: UITableView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath) {
if editingStyle == .Delete {
let record = polls[indexPath.row]
publicDatabase.deleteRecordWithID(record.recordID, completionHandler: ({returnRecord, error in
// do error handling
})
polls.removeAtIndex(indexPath.row)
tableView.deleteRowsAtIndexPaths([indexPath], withRowAnimation: .Fade)
}
}
Edit:
Für eine korrekte Fehlerbehandlung müssen Sie den Code aus Schritt zwei und drei in die stellen könnten Abschlussblock.
override func tableView(tableView: UITableView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath) {
if editingStyle == .Delete {
let record = polls[indexPath.row]
publicDatabase.deleteRecordWithID(record.recordID, completionHandler: ({returnRecord, error in
if error != nil {
// do error handling
} else {
self.polls.removeAtIndex(indexPath.row)
dispatch_async(dispatch_get_main_queue()) {
self.tableView.deleteRowsAtIndexPaths([indexPath], withRowAnimation: .Fade)
}
}
})
}
}
Das hängt von Ihrem Modell ab. Was ist Umfragen? – vadian
Umfragen ist ein CKRecord – user3545063