iphone:无法识别的选择器发送到实例

时间:2010-03-25 11:04:05

标签: iphone

我是目标C的新手,所以也许我有一些关于选择器的基本事情。我想了解这个错误背后的基本概念,因为我没有找到一般错误参考。

使用时出现此错误:

[CloseButton addTarget:PageContents action:@selector(CloseButtonPressed) forControlEvents:UIControlEventTouchUpInside];

然后再说:

- (void)CloseButtonPressed:(id)sender{
   UIAlertView *someError = [[UIAlertView alloc] initWithTitle: @"Comment" message: @"hello" delegate: self cancelButtonTitle: @"Ok" otherButtonTitles: nil];
   [someError show];
   [someError release];
}

2 个答案:

答案 0 :(得分:3)

一些建议可以帮助您的代码遵循所有Objective C应用程序使用的编写约定,并使您的代码更容易被其他人读取:

  1. 对象实例应为小写,即closeButton而非CloseButtonpageContents,而不是PageContents
  2. 方法名称应为小写,即-closeButtonPressed:而不是-CloseButtonPressed:
  3. 要回答您的问题,您需要修复要添加的操作:

    [CloseButton addTarget:PageContents action:@selector(CloseButtonPressed:) forControlEvents:UIControlEventTouchUpInside];
    

    结肠字符(:)确保sender通过-CloseButtonPressed:

答案 1 :(得分:0)

当CloseButtonPressed接受参数时,你应该使用:@selector(CloseButtonPressed:)

创建选择器