使用UIApplicationDidFinishLaunchingNotification

Rit*_*its 5 iphone cocoa-touch objective-c uikit ios

在应用程序完成启动后立即发布.

这就是Apple文档所说的.但我没有看到对象如何收到此通知.它必须将自己添加为观察者,但最早它可以做到这一点的application:didFinishLaunchingWithOptions:方法.那时,通知已经发布.我看不出这个通知有什么用处,或者我忽略了什么?

Jus*_*ers 5

如果您有自己初始化的类或类别+load,它们也可以借此机会等待UIApplicationDidFinishLaunchingNotification. 这样,某些对象可以执行各种级别的“自动”行为,而无需将任何代码插入到应用程序的委托中。


Mar*_*ser 3

假设您的“主 Nib 文件”的根目录中有一些“MyController”类的对象(如目标属性中指定的 - 默认名称为“MainWindow.xib”)。当您的应用程序启动并加载此主 nib 文件时,nib 文件中的所有对象都会收到一个-awakeFromNib方法,包括您的 MyController 实例。在那里,实例可以将自身添加为 UIApplicationDidFinishLaunchingNotification 的观察者。当主 Nib 文件的加载完成(以及其他一些启动内容)并且 UIApplicationDelegate 收到消息时-application:didFinishLaunchingWithOptions:,您的 MyController 实例会收到通知。

注册此通知的另一种(可能不是很常见)情况是,如果您在UIApplicationMain()调用之前直接在 main.m 文件中实例化了某个 Objective-C 类,并且想知道您的应用程序何时实际启动。