我正在学习iOS,但我遇到了麻烦。
这里有四种功能..
-(IBAction) behavior : (UIButton *) sender;
-(IBAction) behavior : (id) sender;
-(IBAction) behavior : sender;
-(IBAction) behavior;
我知道前三件事。但我不知道最后一个功能
-(IBAction) behavior;
是什么意思?当我用它时?
如果我有一个按钮,那么我可以使用这个功能
但我无法使用它。如果我有一个滑块或选择器视图..无论
它是按钮的唯一用途吗?
答案 0 :(得分:5)
-(IBAction) behavior:(UIButton *)sender;
这意味着您已声明了一个名为behavior:
的方法,并且您知道将向您发送behavior:
消息的内容是UIButton
。
-(IBAction) behavior:(id)sender;
这意味着您已经声明了一个名为behavior:
的方法,但是您不确定哪种对象会向您发送消息,因此您将使用通用的“任何对象”({ {1}})。该方法在技术上与第一种方法相同。它们之间的唯一区别是在代码编译期间,而不是在运行时。
id
这是不正确的,不应该编译。
-(IBAction) behavior:sender;
这意味着您已经声明了一个名为-(IBAction) behavior;
的方法,并且忽略了向您发送消息的对象。这仅适用于iOS SDK(可能还有Lion SDK,但我还没有尝试过)。
答案 1 :(得分:0)
假设这个-(IBAction) behavior
只会被一个GUI组件调用,这意味着你不需要在-(IBAction) behavior
中确定按下了什么按钮,那么你就不需要参数了。 / p>
另一方面,如果你有两个GUI组件将触发这个相同的功能,那么你想知道哪一个触发它,并且可能做不同的事情,那么你需要一个参数。
第一个意味着这个功能可以被任何对象触发,第二个意味着它只适用于UIButton,我认为第三个是错误的。