调用按钮动作功能

时间:2012-07-14 09:15:55

标签: objective-c xcode cocoa-touch

只是一个简单的问题...说我创建了一个按钮并添加了一些操作:

-(IBAction)btnclicked:(id)sender {
        //some code here
}

现在我想打电话给我,我可以这样做:

[self btnclicked:self];

所以我的问题是selfbtnclicked之后的角色是什么?为什么用这种方式写它是错的:

[self btnclicked:sender];

请帮忙。

1 个答案:

答案 0 :(得分:1)

sender是type id,可以是任何objective-c对象(或nil)。因此,您可以将任何您喜欢的内容传递给方法,编译器会很高兴。

你在该方法中所做的事情可能会激发某种类型的UIControl,所以如果你传入UIView或NSString或其他任何东西,可能会有一个无法识别的选择器或其他一些崩溃。换句话说,只要您知道自己在做什么,就可以传入自己喜欢的内容。

关于传递发件人错误的问题。我猜这是一个编译器警告,因为发件人在你正在使用它的上下文中是未定义的。 sender是赋予方法内部参数的变量名,它不是可以传递的全局变量或常量