При возникновении ошибки отображается UIAlertView
. Но тем временем вид, на который были вызваны UIAlertView
, был уволен (и поэтому выпущен). Если пользователь нажимает кнопку «ОК», приложение вылетает из-за отправки сообщения в выпущенный экземпляр. Это приведет к тому, Падает:Нажмите на приложение UIAlertView, если вид отклонен
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"test" message:@"test" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
[alertView show];
[alertView release];
alertView = nil;
[self.navigationController popViewControllerAnimated:YES];
Я думал, что UIAlertView
является самостоятельным структурным подразделением. Но, похоже, это не так. Есть ли способ избежать сбоя приложения (за исключением того, что вы не отклоняете представление)?
Я внедрил для этого оповещения протокол UIAlertViewDelegate. Кажется, что нет другого способа, кроме предоставления только кнопки «ОК» и установки делегата на нуль. Я попробую. – testing
Это неправильный ответ. Ответ SooDesuNe верен. Вам нужно либо не установить делегат, либо убедиться, что UNSET это, если делегат будет выпущен. – DougW