0

UISplitViewControllerを持つを使用して小さな iPad アプリケーションを作成しています。付属の を削除し、Xcode オブジェクト パネルからドラッグ アンド ドロップして独自のものを作成しました。データを正常に取り込むことができましたが、セルまたはレコードを削除しようとすると、「スレッド 1: シグナル SIGABRT」エラーが発生するようです。UIMasterViewControllerUIDetailViewControllerUITableViewUIMasterViewControllerUITableViewUITableView

以下は私の編集ボタンのコードです。(これはカスタム ボタンです):

//Edit Button
int cnt = 0;
- (IBAction)buttonEditPressed:(id)sender {

    if (cnt == 0){
    [self.myTableView setEditing:YES animated:YES];
    _buttonEdit.title = @"Done";
        cnt++;
    }
    else if (cnt == 1){
        [self.myTableView setEditing:NO animated:YES];
        _buttonEdit.title = @"Edit";
        cnt--;
    }

}

そして、次のコードは削除が行われる場所です(ただし、代わりにエラーが表示されます):

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

        [self.moduleTitleStack removeObjectAtIndex:indexPath.row];
        [self.myTableView deleteRowsAtIndexPaths:[NSMutableArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
    }
    [self.myTableView reloadData];

}

[更新] numberOfRowsInSection の実装:

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    //id <NSFetchedResultsSectionInfo> sectionInfo = [self.fetchedResultsController sections][section];
    //return [sectionInfo numberOfObjects];
    return [_numberOfRows count];
}

これでうまくいくと思いますが、なぜこのエラーが発生するのかわかりません。

4

1 に答える 1

0

答えは:

[tableView reloadData];行を削除しただけで他に何も変更がない場合は、必要ありません。

また、発生しているクラッシュは、 からオブジェクトを削除しているself.moduleTitleStackが、行数が をチェックしていることです_numberOfRows。(それらは異なる配列であると推測しています)、それが問題です。_numberOfRowsテーブル ビューの新しい設定を反映するように を更新する必要があります

発生している例外について詳しく知るための一般的なヒント:

左側のブレークポイント パネルに移動し、左下で [ Add> ] をクリックして、[ Exception BreakpointOK] をクリックします。デバッガーは例外がスローされるたびに停止し、例外に関する情報と、例外が発生した場所と方法の正確なスタック トレースを提供します。

于 2013-05-15T20:07:10.320 に答える