2012-01-07 58 views
0

在我的程序中我有两种方法来解除uialertview:一个是按钮单击,一个是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 2012-01-07 21:12:45

+0

太好了。这就像一个魅力!谢谢。 – boobami 2012-01-07 21:55:02