-[クラス名 isPointTouchableInArea:]: message sent to deallocated instance アドレス
今回はこのエラーについて書きます。
環境
Xcode : 4.6.2
IOS SDK : 6.1
シミュレータ : iPhone (Retina 3.5-inch)、バージョン5.0
エラーの詳細
UIGestureRecognizerクラスを生成したビューから次のビューに移動し、その移動したビューをタップした際に今回のエラーが発生しました。原因
エラーメッセージを見る限りでは、deallocメソッドがコールされたときに変数がなかったために起こったようですが、deallocメソッド内でreleaseしてもしなくても結果は変わりませんでした。今回のエラーに関しては以下に記述するのですが、デリゲート関連のエラーのようでした。
解決策
デリゲートにnilを与えてあげれば回避できます。for (UIGestureRecognizer* gesture in self.overView.gestureRecognizers) {
gesture.delegate = nil ;
gesture.enabled = NO;
}
以下の処理を記述するタイミングはビューが非表示になるところで行いました。UIGestureRecognizerクラスのデリゲートをnilする場合は、deallocの中ではなく手動で解放を行ったほうがいいようです。
0 件のコメント:
コメントを投稿