2011-07-09 128 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

相關問題