2012-01-07 16 views
0

私のプログラムでは、私はuialertviewを却下する2つの方法を持っています.1つはボタンクリックで、もう1つはnstimerです。タイマーが起動する前にボタンがクリックされると、タイマーが起動するとプログラムが終了します。どのようにタイマーが解読メッセージを実行するかどうかを知るように、uialertviewのステータスを確認するにはどうすればよいですか?そして、どのNSLogステートメントをデバッグに使うべきですか?uialertviewが却下されたかどうかを確認する方法?

答えて

1

私が推測しているのは、割り当て解除されたUIAlertViewへの古いポインタがあるため、アプリケーションがクラッシュしていることです。私はあなたがUIAlertViewを参照するインスタンス変数をリセットしていないと思います。

UIAlertViewポインタを保存するインスタンス変数があります。また、このように、delegateプロパティを設定する必要があります。

myAlert = [[UIAlertView alloc] initWithTitle:...]; 
myAlert.delegate = self; 
[myAlert show]; 
// Now setup the timer 

あなたのクラスはUIAlertViewDelegate protocol実装する必要があり、特にあなたが(私は後を使用したい)alertView:willDismissWithButtonIndex:および/またはalertView:didDismissWithButtonIndex:を実装する必要があります。この方法では、あなたはインスタンス変数をリセットする:タイマーをキャンセル

[myAlert release]; 
myAlert = nil; 
// Also cancel timer 

は重要ながこれ以上nilに変数を設定するなどの重要な部分であることではありません。タイマーが起動すると、それ以上クラッシュしませんでした(しかし、タイマーをキャンセルすることはまだ良い考えです)。

+0

ありがとうございました。私はそれを試してみましょう。 – boobami

+0

それは魅力のように働いた!ありがとう。 – boobami

関連する問題