如何从代码中的任何位置访问实现UIApplicationDelegate的对象?

sor*_*rin 2 cocoa-touch objective-c uikit uiapplicationdelegate ios

UIApplicationDelegate从我的代码中的任何地方访问我的应用程序的方法(对象实现)的正确方法是什么?

Tob*_*ias 6

Caleb是对的,在下面添加一个提示可以节省打字并增加AppKit和UIKit之间的对称性.

如果您是Mac程序员,您可能习惯于像这样访问代理人,

   [NSApp delegate]
Run Code Online (Sandbox Code Playgroud)

在AppKit中,NSApp是这样定义的,

   #define NSApp [NSApplication sharedApplication]
Run Code Online (Sandbox Code Playgroud)

所以要在iOS中获得类似的功能,

   #define UIApp [UIApplication sharedApplication]
Run Code Online (Sandbox Code Playgroud)

然后,要访问该委托,您将执行此操作:

   [UIApp delegate]
Run Code Online (Sandbox Code Playgroud)