2012-01-25 16 views
0

私はviewControllerにテーブルビューを追加しました(私はこのようにしました)。 テーブルビューの各セルにはセグメントコントローラがあり、ユーザがそのセルをクリックするとセルが削除/削除されます。tableViewからセルを削除する

私は例外を取得することになり、私はそれを解決する手がかりがありません。

2012-01-23 15:35:26.729 TestProject [21003:707] *アサーション障害 で - [のUITableView _endCellAnimationsWithContext:]、 /SourceCache/UIKit/UIKit-1448.89/UITableView.m。 995

2012-01-23 15:35:26.761 TestProject [21003:707] *によるキャッチされない例外にアプリ 'NSInternalInconsistencyException' を終端する理由: 「無効更新:セクション0の行の無効数。既存のセクションに含まれる 行の数update(2)は、 update(2)の前に、そのセクションに含まれる行の数に、 (0が挿入された、1が削除された) から挿入または削除された行の数をプラスまたはマイナスしたものでなければなりません。

これまでのコードです。

ボタンイベントで、

UITableViewCell *cell=(UITableViewCell *)segmentController.superview.superview; 

     NSIndexPath *indexPath = [self.myTableView indexPathForCell:cell]; 

     Person *person= [[self allThdata] objectAtIndex:indexPath.row]; 

       [self.allThdata removeObjectIdenticalTo:person]; 

     [self.myTableView beginUpdates]; 

     [self.myTableView deleteRowsAtIndexPaths:[NSArray arrayWithObjects:indexPath, nil] withRowAnimation:YES]; 

     [self.myTableView endUpdates]; 

私もremoveObjectAtIndex: indexPath.rowremoveObject: personを試してみました。これが機能していないもの

答えて

1

removeObjectAtIndex:beginUpdatesブロック内にある必要があります。 `[[自己allThdata] removeObjectAtIndex:indexPath.row]を

UITableViewCell *cell=(UITableViewCell *)segmentController.superview.superview; 
NSIndexPath *indexPath = [self.myTableView indexPathForCell:cell]; 
[self.myTableView beginUpdates]; 
[[self allThdata] removeObjectAtIndex:indexPath.row]; 
[self.myTableView deleteRowsAtIndexPaths:[NSArray arrayWithObjects:indexPath, nil] withRowAnimation:YES]; 
[self.myTableView endUpdates]; 
+0

私はこれを試したと思うが、:

この

は、トリックを行う必要があります;'ラインは、 '[self.myTableView beginUpdates】上述しました;'。 – Illep

+0

これは '[self.myTableView beginUpdates];'の下にあるべきです。 –

関連する問題