0

を使用してテーブルから行を削除した後、次のテキストdeleteRowsAtIndexPathsを受け取りました。NSInternalInconsistencyException

無効な更新: セクション数が無効です。更新後のテーブル ビューに含まれるセクションの数 (1) は、更新前のテーブル ビューに含まれるセクションの数 (1) に、挿入または削除されたセクションの数をプラスまたはマイナスした値 (0 挿入、1削除されました)。

例外は削除されたセクションの数を参照していますが、deleteRowsAtIndexPathsメソッドはを削除することになっています。私が知る限り、セクションの数は影響を受けないはずです。これはどのように起こりますか?行を削除したいとテーブルが判断する原因は何ですか?

エラーの原因となるコードの完全な行は次のとおりです。

[self.contentTable
 deleteRowsAtIndexPaths:[NSArray arrayWithObject:[NSIndexPath indexPathForItem:index inSection:0]]
 withRowAnimation:UITableViewRowAnimationMiddle];
4

1 に答える 1

0

私はちょうどこれを修正することができました。混乱の原因は、役に立たないエラー メッセージであることが判明しました。

私の間違いは、間違った行を削除しようとしたことです (テーブルの 14 行で、行 2147483647 を削除しようとしていました - 偶然ではなく、これは NSNotFound の値です)。どうやら、この行を削除しようとすると、テーブル内のセクション数に関する例外メッセージが生成されます。

于 2013-01-10T15:21:14.360 に答える