美文网首页OC
iOS 简化AppDelegate

iOS 简化AppDelegate

作者: 曹九朵_ | 来源:发表于2017-02-13 15:15 被阅读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 方法一样调用父类的方法。

    相关文章

      网友评论

        本文标题:iOS 简化AppDelegate

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