0
在我的程序中我有两种方法来解除uialertview:一个是按钮单击,一个是nstimer。如果在定时器触发前点击该按钮,则当定时器触发时,程序退出。如何检查uialertview的状态,以便计时器知道是否执行解雇消息?我应该使用什么NSLog语句来进行调试。如何检查uialertview是否已被解雇?
在我的程序中我有两种方法来解除uialertview:一个是按钮单击,一个是nstimer。如果在定时器触发前点击该按钮,则当定时器触发时,程序退出。如何检查uialertview的状态,以便计时器知道是否执行解雇消息?我应该使用什么NSLog语句来进行调试。如何检查uialertview是否已被解雇?
我的猜测是,你的应用程序崩溃的例外,因为你有陈旧的指针去分配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
是重要的组成部分。一旦计时器启动,它不会再崩溃(但取消计时器仍然是个好主意)。
谢谢。我会尝试一下。 – boobami 2012-01-07 21:12:45
太好了。这就像一个魅力!谢谢。 – boobami 2012-01-07 21:55:02