2009-03-12 9 views
3

私のアプリケーションには、行とセクションのあるテーブルビューが含まれています。
セクションの最後のアイテムを削除すると、そのセクションが削除されます。それはうまく動作します。
しかし、セクションの最後の行を別のセクションに移動すると、エラーが発生します。ここでデフォルトのテーブルビュー - セクションの削除

は、両方のケースでは私のコードです:ここでは

[categoryArray removeObjectAtIndex:indexPath.section]; 
[tableView deleteSections:[NSIndexSet indexSetWithIndex:indexPath.section] withRowAnimation:UITableViewRowAnimationTop]; 

はmoveRowAtIndexPathに発生するエラーです:fromIndexPath:toIndexPath:

2009-03-11 17:56:09.524 Test[5140:20b] 1 
2009-03-11 17:56:09.525 Test[5140:20b] *** Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[NSCFArray objectAtIndex:]: index (5) beyond bounds (5)' 

すべてのヘルプは素晴らしいことです!

答えて

0

5要素配列の6番目の要素にアクセスしようとしているようです。 1を減算せずに配列サイズをインデックスとして使用していますか?

2

実際、私のコードは要素にアクセスしようとしていません。私はエラーがUITableViewメソッドから来ると思います(私たちはsdkのヘッダファイルにしかアクセスできないのでわかりません)。 問題はこの時点で発生します:

[tableView deleteSections:[NSIndexSet indexSetWithIndex:fromIndexPath.section] withRowAnimation:UITableViewRowAnimationTop]; 
+0

この問題をどのように解決しましたか?私は似たようなものを手に入れているようだ –

0

私はこの問題を抱えており、私はそれを解決しました。私の場合、私はコアデータを使用していた、と私は私がすべてを包むように持っていた

[tableView beginUpdates]; 
    ... 
    [tableView endUpdates]; 

に削除ロジックをラップする必要がありました。データ/セクションを削除する前から、コンテキストを保存した後まで。それが役に立てば幸い。