zoukankan      html  css  js  c++  java
  • 类的启动过程

    1.+load方法

    • 在程序启动的时候会加载所有的类和分类,并调用所有类和分类的+load方法(只会调用一次)
    • 先加载父类,再加载子类;也就是先调用父类的+load,再调用子类的+load
    • 先加载元原始类,再加载分类
    • 不管程序运行过程有没有用到这个类,都会调用+load加载
    @implementation Person
    
    + (void)load
    {
        NSLog(@"%s", __func__);
    }
    @end
    
    @implementation Student : Person
    
    + (void)load
    {
        NSLog(@"%s", __func__);
    }
    @end
    
    输出结果:
    +[Person load]
    +[Student load]

    2.+initialize

    • 在第一次使用某个类时(比如创建对象等),只会调用一次+initialize方法
    • 一个类只会调用一次+initialize方法,先调用父类的,再调用子类的
    @implementation Person
    + (void)initialize
    {
        NSLog(@"%s", __func__);
    }
    @end
    
    @implementation Student : Person
    + (void)initialize
    {
        NSLog(@"%s", __func__);
    }
    @end
    int main(int argc, const char * argv[]) {
        Student *stu = [Student new];
        return 0;
    }
    输出结果:
    +[Person initialize]
    +[Student initialize]

  • 相关阅读:
    bp算法原理
    bp算法
    Python之简单的神经网络
    人工智能教程
    clickhouse的windowFunnel(漏斗)
    Hihocoder 1079 离散化
    Hihocoder 1063 缩地
    md5
    搜索引擎 中文分词
    Hihocoder 1059 String Matching Content Length
  • 原文地址:https://www.cnblogs.com/xufengyuan/p/6576619.html
Copyright © 2011-2022 走看看