2012-01-07 2 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

+0

Отлично. Это работало как шарм! Благодарю. – boobami