如何检查uialertview是否已被解雇?

时间:2012-01-07 20:49:07

标签: uialertview status nslog

在我的程序中,我有两种方法可以解雇uialertview:一种是通过按钮单击,另一种是通过nstimer。如果在计时器触发之前单击按钮,则在计时器触发时退出程序。如何检查uialertview的状态,以便计时器知道是否执行解雇消息?我应该使用什么NSLog语句进行调试。

1 个答案:

答案 0 :(得分: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是重要的部分。一旦计时器启动它就不会再崩溃(但取消计时器仍然是一个好主意)。