2011-07-09 98 views

回答

3

定义假设你想让它适用于iOS,一个简单的电话:

[[[UIApplication sharedApplication] delegate] doSomething]; 

应该这样做。在Mac Os上,您改用NSApplication。 由于你的应用程序委托不是(是吗?)你的主视图控制器的超类,你不能这样做你的问题。

而且,一个更好的方法应该是:

[[UIApplication sharedApplication] sendAction:@selector(doSomething) 
              to:nil 
             from:self]; 

这种方式(指定nil为reciever),动作消息将通过响应链,并最终由您appliation处理如果没有任何响应者对象可以处理它,那么委托。此外,这种方式可以防止您直接在自定义视图控制器中引用应用程序委托。

Here是有关此方法的更多信息的文档。

+0

谢谢,但我用这种方法,如果有人发现有帮助 MyExampleAppDelegate * ad = [[MyExampleAppDelegate alloc] [ad doSomething]; [广告发布]; 希望这不会损害应用程序。 –

+0

已更新的答案。 – 2011-07-16 07:53:24

相关问题