2012-04-03 17 views
0

私はいくつかのセクションを持つテーブルビューを持っています。ある時点で、tableViewからセクションを削除したいと考えています。これを行うには、私は、ヘッダーのロングタップジェスチャーを持っている、と長いタップに私はそうのようなUIMenuControllerを持ち出す:これは、ヘッダーのための私のカスタムビューサブクラスで行われEXC_BAD_ACCESS TableViewセクションを削除しようとしたとき

UIMenuController *deleteMenu = [UIMenuController sharedMenuController]; 
UIMenuItem *delete = [[UIMenuItem alloc] initWithTitle:@"Delete"  action:@selector(deleteCell:)]; 
[deleteMenu setMenuItems:[NSArray arrayWithObject:delete]]; 
[deleteMenu update]; 
[deleteMenu setTargetRect:CGRectMake(0, 0, 320, 460) inView:self.superview]; 
[deleteMenu setMenuVisible:YES animated:YES]; 

deleteCell:メソッドでは、デリゲートメソッドを呼び出します(デリゲートは、テーブルビューを所有するビューコントローラです)。デリゲートメソッドの実装で は、私は(セクションがintである)のようなセクションを削除しよう:

[statsTable deleteSections:[NSIndexSet indexSetWithIndex:section] withRowAnimation:UITableViewRowAnimationAutomatic]; 

このラインでは、私はEXC_BAD_ACCESSを取得します。変わったことは、これが起こるとXcodeもクラッシュするため、私はBAD_ACCESSの原因を見ることができません。なぜこれが起こっているのか誰かが知っていれば、あなたの助けは大いに評価されるでしょう。

おかげで、

EDIT ::ソリューション、それはあなたがテーブルビューから何かを削除できるようにするために最初の応答者になるために持っているテーブルビューを持っているVCが見つかり。ありがとう

+0

NSZombiesを有効にして実行しましたか? – CodaFi

+0

いいえ、どうすればいいのですか?私はARCを使用しているので、私は必要ないと思った。 –

+0

ええ、ARCであなたは正しいです、あなたはする必要はありません。セクションを削除する前に-beginUpdatesと-endUpdatesを呼び出しますか? – CodaFi

答えて

1

UIMenuControllerにはdelete:メッセージを送信するdelete MenuItemがあります。私はあなた自身の削除でそれをコピーする代わりにそれを使用することをお勧めします。

Xcode 4.3でNSZombiesを非常に簡単に有効にするには、Manage Schemesをクリックしてください(以下のスクリーンショットのように、現在のスキーム/デバイスを持つバーをクリックしてアクセスできます)。 enter image description here

その後、ポップアップ表示画面で、[編集]をクリックして、あなたがこれを見なければならない...

enter image description here

チェック「ゾンビオブジェクトを有効にする」とあなたが行ってもいいです。

+0

ありがとう、私はbegin/endの更新でそれらをラップしようとしましたが、私はまだ同じエラーが発生します。 NSZombiesに関するあなたのチュートリアルはとても役に立ちます。ありがとう! –

関連する問題