在我的程序中,我有两种方法可以解雇uialertview:一种是通过按钮单击,另一种是通过nstimer。如果在计时器触发之前单击按钮,则在计时器触发时退出程序。如何检查uialertview的状态,以便计时器知道是否执行解雇消息?我应该使用什么NSLog语句进行调试。
答案 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
是重要的部分。一旦计时器启动它就不会再崩溃(但取消计时器仍然是一个好主意)。