Я пытаюсь сюда ViewController А чтобы таковой делегатом на UIAlertView в ViewController B, используя этот код:Настройка UIAlertView делегат
В ViewcontrollerA.m
-(IBAction)callCancelAlert:(id)sender{
ViewcontrollerB *controller = [[PhotoViewController alloc] init];
UIAlertView *alert = [[UIAlertView alloc]
initWithTitle: @"Announcement"
message: @"It turns out that you are playing Addicus!"
delegate: PhotoViewController
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alert show];
//[alert release];
}
и #import ViewcontorllerB.h
... но я получаю сообщение об ошибке «Неожиданное имя интерфейса ViewcontorllerB: ожидаемое выражение». Что это значит?
нормально, я попробовал это, и как только я нажимаю кнопку на UIAlertView я получаю эту ошибку: 0x3a61a5b6: LDR r12, [r3, # -8] и приложение сбой – user2014474
Я полагаю, что я делаю что-то не так ... – user2014474
Вы устанавливаете делегат на объект, который собирает сбор мусора, как только метод заканчивается. Таким образом, к моменту нажатия пользователем кнопки и UIAlertView пытается вызвать делегата, он использует указатель делегата, который теперь указывает на случайную память. Если вы собираетесь установить объект-делегат, вы должны убедиться, что объект-делегат сохранен/хранится где-то постоянным. Метод «показать» предупреждения предупреждает об этом в фоновом режиме, и ваш метод продолжает выполнение какого-либо кода сразу после метода show (в результате чего ваш созданный объект делегирования будет освобожден). –