在我们的 Cocoa/Cocoa-touch 应用程序中注册的应用程序委托在哪里

Posted

技术标签:

【中文标题】在我们的 Cocoa/Cocoa-touch 应用程序中注册的应用程序委托在哪里【英文标题】:Where is Application delegate registered in our Cocoa/Cocoa-touch app 【发布时间】:2012-01-01 15:16:38 【问题描述】:

每个应用程序都有一个应用程序委托。

在我们指定/注册的代码中,“SomeClass”(UIApplicationDelegate 的子类)是我的应用程序的委托?

【问题讨论】:

它不是UIApplicationDelegate 的子类。是一个符合UIApplicationDelegate协议的类 另外,吹毛求疵,不是类是委托,而是类的instance 【参考方案1】:

如果你使用 Storyboard,这是在 main.m 中完成的:

UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));

如果UIApplicationMain() 的第四个参数不是nil,该函数将创建指定类的实例并将其分配为UIApplication 对象的委托。

如果您不使用 Storyboard,则在 MainWindow.xib 中建立连接,在该处创建应用程序委托对象并将其作为文件所有者的委托进行连接(即 UIApplication 实例,而该实例又由UIApplicationMain() 函数)。

【讨论】:

无论您是否使用情节提要,都使用UIApplicationMain 完成。我不确定更改发生的时间,但从 Xcode 4.2.1 开始,Cocoa Touch 模板都没有使用主笔尖。【参考方案2】:

这就是我为我的应用找到应用委托的方式...

MyAppDelegate *appDelegate = (MyAppDelegate *)[[UIApplication sharedApplication] delegate];

应用委托的类名就是您的应用的名称,后跟“AppDelegate”。您将在项目的文件列表中看到该类,但它是自动创建的。只需查找文件“MyAppDelegate.m”。

此类在“窗口化”应用程序的 MainWinodw.xib 中分配了委托职责。如果您不使用窗口应用程序,您可能会在“main.m”文件中对UIApplicationMain 的调用中找到分配。

【讨论】:

我们在哪里指定MyAppDelegate 是我们应用程序的主要代表 对不起,我已经在上面澄清了。但我看到 Ole 在我编辑时在下面说了同样的话!无论如何,希望您找到所需的信息。

以上是关于在我们的 Cocoa/Cocoa-touch 应用程序中注册的应用程序委托在哪里的主要内容,如果未能解决你的问题,请参考以下文章

当用户在我们的应用程序运行时从音乐应用程序中删除歌曲时,我希望在我们的应用程序中删除歌曲事件

当在我们的应用程序外按住“睡眠/唤醒”和“主页”按钮进行屏幕截图时,如何将我们的应用程序的本地通知作为“使用我们的应用程序打开图像”

tvOS:我们在哪里设置 tvOS 应用商店中显示的应用主题背景图像

我们可以在应用程序处于审查模式时更改应用程序中的实时数据库吗?

怎样在QML应用中调用系统设置中的页面来设置我们的系统

我们可以为内部应用共享设置更新优先级(在应用更新中测试)吗?