1

テーブルビューからセルを削除しようとして失敗し、関連するレコードをデータベースから削除しようとしています。これが私のコードです:

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
    if (editingStyle == UITableViewCellEditingStyleDelete) {

        // Delete the row from the data source
        [self.arr removeObjectAtIndex:indexPath.row];
        [self.tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
        [self.tableView reloadData];
        NSError *error = nil;
        [self.context save:&error];
    }
    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
    }
        [self.tableView reloadData];
}

どんな提案でも大歓迎です。私はすべてを試しましたが、SOで多くの同様の質問を読みましたが、まだ理解できません。ありがとうございました。

4

2 に答える 2

1

配列呼び出しでオブジェクトを削除する前に:

NSManagedObject *eventToDelete = [matchedObjects objectAtIndex:indexPath.row];
[context deleteObject:eventToDelete];
于 2013-08-30T15:49:24.513 に答える
1

ReloadDataテーブルビューから行を削除する場合、書いた内容は正しいですが、行を削除した後は呼び出しないでくださいdeleteRowsAtIndexPaths....

[self.arr removeObjectAtIndex:indexPath.row];

[self.tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];

データベース内のオブジェクトを削除していません。

于 2013-08-30T16:17:33.000 に答える