0

类 1 具有以下生成异常的代码 -

-(IBAction) searchAllAction: (id) sender {
AddDiagSearchController *search = [[AddDiagSearchController alloc] initWithNibName:@"DiagSearch" bundle:nil];
[self.navigationController pushViewController:搜索动画:YES];
}

pushViewController部分产生以下异常 - 2010-04-14 14:03:31.060 Nav[10314:207] *** -[UIView addTarget:action:forControlEvents:]: unrecognized selector sent to instance 0x3956a80

我要推送的类具有以下代码。IBOutlets 的所有连接都是通过接口构建器进行的。它在底部有一个表格视图、搜索文本栏和一个标签栏,我将把它添加到 UINavigationController。

@interface AddDiagSearchController : UIViewController <UITableViewDataSource, UITableViewDelegate>{
UIBarButtonItem *quickAdd;
UIBarButtonItem *searchAll;
UITextField *searchTxt;
}

@property(非原子,保留)IBOutlet UITextField *searchTxt;
-(IBAction)searchAllClicked:(id)发件人;
-(IBAction) quickAddClicked:(id) 发件人;
-(IBAction)searchBtnClicked;
-(IBAction)resignResponder:(id)发件人;
@结尾

4

2 回答 2

1

这不是无效的参数异常,而是无法识别的选择器。在推送 AddDiagSearchController 时,您正在向 UIView 发送用于 UIControl 的消息,这意味着您可能有一个混乱的 nib 文件。

于 2010-04-14T18:51:31.770 回答
0

我不确定,但它看起来像内存管理问题。我发现这篇关于 CocoaDev的文章对调试此类问题很有用。请注意,MallocStackLogging 仅适用于模拟器。我敢打赌,以前的视图或控制器存在问题(它发布得太早),而不是推送的。

顺便说一句,您似乎在search创建时泄漏了内存,release但又没有 autorelease

于 2010-04-14T18:27:44.250 回答