Создание пользовательского UIView с двумя кнопками UIB для элемента accessoryView UITableViewCell приводит к тому, что нераспознанный селектор отправляется на ошибку экземпляра - PullRequest
3 голосов
/ 21 марта 2011

Я пытаюсь создать представление с двумя кнопками для вспомогательного представления ячейки таблицы, чтобы сделать две (очевидно) разные вещи с объектом по индексу этой ячейки.Я сделал две основные округленные прямоугольные UIB-кнопки с селектором в RootViewController (где находится UITableView).Вот код, который я использую для инициализации этого представления в ячейке, найденной в методе cellForRowAtIndexPath:

UIButton* minus = [[UIButton buttonWithType:UIButtonTypeRoundedRect] retain]; [minus setFrame:CGRectMake(0, 0, 30, 30)]; [minus setTitle:@"-" forState:UIControlStateNormal]; [minus addTarget:self action:@selector(subtractOne:event:) forControlEvents:UIControlEventTouchDown]; UIButton* plus = [[UIButton buttonWithType:UIButtonTypeRoundedRect] retain]; [plus setFrame:CGRectMake(30, 0, 30, 30)]; [plus setTitle:@"+" forState:UIControlStateNormal]; [plus addTarget:self action:@selector(addOne:event:) forControlEvents:UIControlEventTouchDown]; UIView* customAccessory = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 60, 30)]; [customAccessory addSubview:minus]; [customAccessory addSubview:plus]; cell.accessoryView = customAccessory; [customAccessory release];

И определены два вызываемых ими метода:

- (void)subtractOne:(id)sender forEvent:(UIEvent *)event; - (void)addOne:(id)sender forEvent:(UIEvent *)event;

Любые идеи, почему это приведет к тому, что нераспознанный отправитель отправит экземпляру "RootViewController"?

Вот полная ошибка:

2011-03-20 20:34: 35.493 MyApp [23262: 207] - [RootViewController subtractOne: событие:]: нераспознанный селектор отправлен в экземпляр 0x573c350 2011-03-20 20: 34: 35.496 MyApp [23262: 207] * Из-за завершения приложенияк необработанному исключению 'NSInvalidArgumentException', причина: '- [RootViewController subtractOne: event:]: нераспознанный селектор, отправленный экземпляру 0x573c350'

1 Ответ

2 голосов
/ 21 марта 2011

Понял свою глупую ошибку: пытался вызвать subtractOne: событие: когда я написал метод для subtractOne: forEvent:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...