Непризнанная ошибка селектора UIActionSheet

64
4

Я пробовал компилировать и запускать этот простой код, но он бросал ошибку


- (void)doSomething
{
UIActionSheet *actionSheet = [[UIActionSheet alloc]
initWithTitle:@"Are you sure?"
delegate:self
cancelButtonTitle:@"No Way"
destructiveButtonTitle:@"Yes, I'm Sure!"
otherButtonTitles:nil];
[actionSheet showInView:self.view];
[actionSheet release];
}

- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex
{
// the user clicked one of the OK/Cancel buttons
if (buttonIndex == 0)
{
NSLog(@"ok");

}
}


Это ошибка:


-[__NSCFData actionSheet:clickedButtonAtIndex:]: unrecognized selector sent to instance 0x6d6df80
2010-10-25 16:07:36.120 iota[31172:207] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFData actionSheet:clickedButtonAtIndex:]: unrecognized selector sent to instance 0x6d6df80'

Интересно, что он не работает как часть более крупного кода, но отлично работает на автономной основе.

спросил(а) 2021-01-19T18:19:50+03:00 8 месяцев назад
1
Решение
127

В экземпляре, который отправляет сообщение actionSheet:clickedButtonAtIndex:, кажется, кажется, что он имеет тип NSData (из CFData). Это говорит мне о том, что экземпляр self, вероятно, был освобожден до нажатия кнопки.

Добавление делегата не сохраняет его, поэтому вам нужно сохранить его до тех пор, пока будет отображаться UIActionSheet.

ответил(а) 2021-01-19T18:19:50+03:00 8 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема