Ich versuche, die von Apple bereitgestellte Funktion "Bearbeiten" -> (-) -> "Löschen" zu verwenden, um eine Zeile aus meiner UITableView zu entfernen.
Ich habe die Schaltfläche hier aktiviert:
- (void)viewDidLoad {
[super viewDidLoad];
self.navigationItem.rightBarButtonItem = self.editButtonItem;
}
Die hier erstellte UITableViewCell:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
PositionCell *cell = (PositionCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[PositionCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier] autorelease];
}
FSExAppDelegate *appDelegate = (FSExAppDelegate *)[[UIApplication sharedApplication] delegate];
Position *pos = [appDelegate.positions objectAtIndex:indexPath.row];
[cell setPosition:pos];
// Configure the cell.
return cell;
}
Und dann nur den von Apple bereitgestellten Code:
// Override to support editing the table view.
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
if (editingStyle == UITableViewCellEditingStyleDelete) {
// Delete the row from the data source.
[tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
}
else if (editingStyle == UITableViewCellEditingStyleInsert) {
// Create a new instance of the appropriate class, insert it into the array, and add a new row to the table view.
}
}
Wenn ich die Löschaktion ausführe, bleibe ich bei hängen:
[tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
mit "Thread 1: Programm hat das Signal 'SIGABRT' empfangen".
Ich habe die Fragen hier durchforstet, aber ich kann nichts zu diesem Problem finden. Kann jemand helfen?
DJS.