OC

iOS 简化AppDelegate

2017-02-13  本文已影响55人  曹九朵_

项目结构日益复杂,在启动时需配置的内容也越来越多.所以分离AppDelegate中文件内容很有必要.
新建一个类文件 startApp.h
调用类方法 load()

+ (void)load
{
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        [[self class]setUpSomething];
    });
}

+ (void)setUpSomething{
    NSLog(@"i can do everything");
}

接下来只需要在AppDelegate里导入startApp.h头文件, 不需要其他操作,就可以很好的分离出代码.

原理:
当类对象被引入项目时, runtime 会向每一个类对象发送 load 消息.
load 方法还是非常的神奇的, 因为它会在每一个类甚至分类被引入时仅调用一次, 调用的顺序是父类优先于子类, 子类优先于分类.
而且 load 方法不会被类自动继承, 每一个类中的 load 方法都不需要像 viewDidLoad 方法一样调用父类的方法。

上一篇下一篇

猜你喜欢

热点阅读