-1

これが私のコードで、選択した行を削除することになっています。行数が正しくないと主張するため、アプリがクラッシュします。確認しましたが、正しくありません。テーブルの行は削除されましたが、行数が更新されていないようです(コードがヒットします)...これはどのように可能ですか?(正確なコードを持つ別のUITableViewControllerがあります。これは機能します)。どうすれば修正できますか?

if (editingStyle == UITableViewCellEditingStyleDelete) {

    //  remove row from the table
    SQLite *sql = [[SQLite alloc] init];
    [sql deleteReadingsRow: indexPath.row];

    // Delete the row from the data source
    [tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
}   

行数を決定するコードは次のとおりです。

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {

    SingletonListOfReadings  *rShareInstance = [SingletonListOfReadings sharedInstance];

    return rShareInstance.listOfReadings.count; // Return the number of rows in the section
}
4

2 に答える 2

0

問題が見つかりました... d/b テーブルで行が削除されたときにリセットされなかったシングルトン (SingletonListOfReadings) に依存していました。

于 2012-04-26T21:42:09.323 に答える
0

問題が見つかった場合は、代わりにNSFetchedResultsControllerの使用を検討する必要があります。少しの作業で、行が追加、削除、または変更されたときにテーブルを自動的に更新できます。シングルトンの同期を維持することに依存するよりも、一般的に信頼性の高いソリューションです。テーブルで使用する例はたくさんあります。

于 2012-04-26T21:52:18.337 に答える