当没有从动作调用时使用IBAction方法?

can*_*boy 3 iphone methods objective-c ibaction

使用IBAction时是否有任何问题,而实际上并未从用户的操作中调用它?

如果你有像这样的动作

-(IBAction)sayHello:(id)sender;
Run Code Online (Sandbox Code Playgroud)

你可以从你的班级中调用它,如:

[self sayHello:@"x"]
Run Code Online (Sandbox Code Playgroud)

@"x"没有做任何事情,它只是填写发件人.

实际上,您可以创建一个没有(id)发送方的IBAction方法

-(IBAction)sayHello;
Run Code Online (Sandbox Code Playgroud)

并从用户的操作和代码中调用它,但之后您将无法从界面获得任何有用的发件人信息.从代码中调用时,为发件人填写的"正确"方法是什么?您可以创建发件人信息,以便在代码中调用时发送吗?

只是想弄明白.

vod*_*ang 6

我认为OOP的一个好习惯是折射方法 - (IBAction)sayHello:(id)sender;

另一种叫做的方法: - (void)sayHello; 在方法内 - (IBAction)sayHello:(id)sender {[self sayHello]; }

如果其他方法想要调用sayHello:(id)发送者动作来做一些工作,它可以调用sayHello.方法名称应该有意义,客户端可以毫无问题地调用它或解决它.当您需要测试或调试时,它会对您有所帮助