в моей программе У меня есть два способа отклонить 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
Отлично. Это работало как шарм! Благодарю. – boobami