使用一个IBAction为方法时,它不会从一个动作叫什么?
-
26-09-2019 - |
题
有没有使用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
吧。
不隶属于 StackOverflow