有没有使用IBAction为当任何问题,当它实际上并没有从用户的动作叫什么?

如果你有这样一个动作

-(IBAction)sayHello:(id)sender;

您可以从您的类中调用它像:

[self sayHello:@"x"]

在@“X”没有做任何事情,它只是填写发件人。

可以实际创建没有IBAction为方法(ID)发送方

-(IBAction)sayHello;

和调用它来自用户的动作,并从代码中,但你不会得到从接口的任何有用的发送方信息。是什么在填充发件人,从代码中调用时的“正确”的方式?您可以创建发送方信息发送时,它被称为从内码?

只是想弄明白。

有帮助吗?

解决方案

我认为一个OOP好的做法是折射的方法 - (IBAction为)的sayHello:(ID)发送者;

另一种方法称为: - (无效)的sayHello; 并且该方法内 - (IBAction为)的sayHello:(ID)发送方{   [自sayHello的]; }

如果其他方法要调用的sayHello:(ID)发送方的行动做了一些工作,它可以调用sayHello的。该方法的名称应该是有意义的客户端调用它没有任何问题或解决。它会帮助你,当你有测试或调试

其他提示

在发送器应的UI组件。所以,如果你的班上你有,比如说,一个UIButton ...

UIButton *button;

然后,你可以把它作为参数的操作:

[self sayHello:button];

内幕的方法,不管它是从UI或以某种方式模拟叫,你可以有一些逻辑来检测发送者是谁,以及不同的行为基于这一点。以此方式,多个按钮或其他部件可以重复使用相同的操作方法。

除非你实际上是利用了sender参数(见Jaanus的以获得更多关于这个问题的答案),你没事用代码调用方法时传递nil吧。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top