参数异常无效 - 导航栏,标签栏,UIView

时间:2010-04-14 18:16:45

标签: iphone uinavigationcontroller pushviewcontroller

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

  

- (IBAction)searchAllAction:(id)发件人{
    AddDiagSearchController * search = [[AddDiagSearchController alloc] initWithNibName:@“DiagSearch”bundle:nil];
    [self.navigationController pushViewController:search animated:YES];
  }

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

我正在尝试推送的类具有以下代码。 IBOutlet的所有连接都是通过接口构建器完成的。它有一个tableView,搜索文本栏和底部的tabbar,我将把它添加到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)发件人;
  @end

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

我不确定,但它看起来像内存管理问题。我发现这个article on CocoaDev在调试这些问题时非常有用。请注意,MallocStackLogging仅适用于模拟器。我敢打赌,以前的视图或控制器(它发布得太早)存在问题,而不是推送它。

顺便说一下,在您创建search而不是release时,您会泄漏内存{/ 1}}。