iOS AppDelegate瘦身

作者: e5311f1a36e5 | 来源:发表于2017-03-29 15:19 被阅读113次

个人建议

AppDelegate该文件中只处理app的delegate的事件,不进行其他代码的编写,已达到简洁明晰的作用

瘦身原理

利用+load的特性并结合notification来实现加载其他模块等在app启动时所需要完成的工作

代码(这段代码在AppDelegate里面写)

+ (void)load{
__block id observer = [[NSNotificationCenter defaultCenter] addObserverForName:UIApplicationDidFinishLaunchingNotification object:nil queue:nil usingBlock:^(NSNotification *note) {
    
    //初始化appdelegate的帮助对象
    AppDelegateHelper *appDelegateHelper = [AppDelegateHelper new];
    [appDelegateHelper appSetUp];
    [[NSNotificationCenter defaultCenter] removeObserver:observer];
}];
}

代码说明

  1. +load会在足够早的时间进行调用
  1. block会生成一个__nsobserver *给外部remove观察者
  2. block对observer的捕捉早于函数的返回,如果不加__block,会返回nil
  3. 在block结束时,只需要清除observer,不需要做其他的清除工作
  4. 这样在app启动时,所有工作都可以完成,同是也可以保持appdelegate文件的简洁清晰

相关文章

  • iOS AppDelegate瘦身

    个人建议 AppDelegate该文件中只处理app的delegate的事件,不进行其他代码的编写,已达到简洁明晰...

  • iOS 给AppDelegate瘦身

    项目中经常要用到第三方的SDK每次都要在AppDelegate中注册APPKEY 接受回调等 这样就使本来很简洁的...

  • iOS AppDelegate 拆分瘦身

    talk is cheap, show me the code Demo[https://github.com/y...

  • App-快速搭建项目框架-AppDelegate入口

    AppDelegate组件化 AppDelegate瘦身 AppDelegate是App的入口,对于开发耦合性来说...

  • AppDelegate瘦身

    简介 看到这个话题,自然是想整理AppDelegate里面各自杂乱的逻辑。 目标 各个模块可以单独实现,不需要在A...

  • 【iOS】菜鸟进阶:AppDelegate之瘦身

    是否一个AppDelegate里面的代码杂乱无章? 是否一个AppDelegate里面上千行代码? AppDele...

  • iOS 利用通知给AppDelegate瘦身

    原文链接: http://blog.sunnyxx.com/2015/03/09/notification-onc...

  • AppDelegate如何瘦身?

    1、使用分类,拆分模块到分类中。(分类中同名方法覆盖问题)2、不使用分类,拆分模块,每个模块的处理数据方法注册到原...

  • AppDelegate的瘦身

    问题:AppDelegate里面各种各样的sdk的集成 1.初始化控制器2.初始化分享3.初始化推送等 这么多的东...

  • AppDelegate如何瘦身

    无穷无尽的需求堆在Appdelegate中将会不忍直视. 1. 各组件分开引入 关于组件的拆分,就根据具体项目进行...

网友评论

    本文标题:iOS AppDelegate瘦身

    本文链接:https://www.haomeiwen.com/subject/gzoeottx.html