iOS 【didFinishLaunchingWithOptions 方法瘦身】

xiaoxiao2021-02-27  159

在项目中多模块的初始化工作大都写在的 AppDelegate.m 下的 - application: didFinishLaunchingWithOptions: 方法中去执行,这种做法使得该方法中代码过长、阅读性很差,这么做其实只是为了在程序启动时获得一次调用机会。我们可以采取下面的方法来减轻 AppDelegate.m 的压力:

+ (void)load { /** 注册监听一个通知 */ __block id observer = [[NSNotificationCenter defaultCenter] addObserverForName:UIApplicationDidFinishLaunchingNotification object:nil queue:nil usingBlock:^(NSNotification * _Nonnull note) { /** * 这里可以写你要初始化去做的东西 */ /** 完成操作后销毁通知的监听 */ [[NSNotificationCenter defaultCenter] removeObserver:observer]; }]; } 额外说明一下 + load 和 + initialize 方法的区别:

+ load 方法会在加载类的时候就被调用,也就是 iOS 应用启动的时候,就会加载所有的类,就会调用每个类的 + load 方法。

+ initialize 方法会在第一次初始化这个类之前被调用。

具体可以参见这两篇文章深入了解:

http://www.jianshu.com/p/9368ce9bb8f9

http://blog.csdn.net/zww1984774346/article/details/51211737

转载请注明原文地址: https://www.6miu.com/read-16224.html

最新回复(0)