Неверное исключение аргумента - Панель навигации, панель вкладок, UIView - PullRequest
0 голосов
/ 14 апреля 2010

Класс 1 имеет следующий код, который генерирует исключение -

- (IBAction) searchAllAction: (id) отправитель {
AddDiagSearchController * search = [[AddDiagSearchController alloc] initWithNibName: @ "DiagSearch": nil];
[self.navigationController pushViewController: поиск анимированный: ДА];
}

часть pushViewController создает следующее исключение - 2010-04-14 14:03:31.060 Nav[10314:207] *** -[UIView addTarget:action:forControlEvents:]: unrecognized selector sent to instance 0x3956a80

И класс, который я пытаюсь нажать, имеет следующий код. Все соединения для IBOutlets были сделаны через конструктор интерфейса. У него есть tableView, текстовая строка поиска и панель вкладок внизу, и я добавлю это в UINavigationController.

@ interface AddDiagSearchController: UIViewController {
UIBarButtonItem * quickAdd;
UIBarButtonItem * searchAll;
UITextField * searchTxt;
}

@ свойство (неатомное, сохраняемое) IBOutlet UITextField * searchTxt;
- (IBAction) searchAllClicked: (id) отправитель;
- (IBAction) quickAddClicked: (id) отправитель;
- (IBAction) searchBtnClicked;
- (IBAction) resignResponder: (id) отправитель;
@end

Ответы [ 2 ]

1 голос
/ 14 апреля 2010

Это не недопустимое исключение аргумента, это нераспознанный селектор. При отправке вашего AddDiagSearchController вы отправляете сообщение, предназначенное для UIControl, в UIView, что означает, что у вас, вероятно, испорченный файл пера.

0 голосов
/ 14 апреля 2010

Я не уверен, но похоже на проблему с управлением памятью. Я нашел эту статью о CocoaDev полезной для устранения таких проблем. Обратите внимание, что MallocStackLogging работает только на симуляторе. Могу поспорить, что есть проблема с предыдущим представлением или контроллером (он выпущен слишком рано), а не с нажатой.

Кстати, кажется, что вы теряете память на search при создании, а не release и autorelease.

...