iOS AppDelegate瘦身

个人建议

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文件的简洁清晰
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值