一、类方法 +load
- iOS 有四种方法可方便的在 premain 阶段执行代码:
-
- Objective C 类的 +load 方法;
-
- C++ static initializer;
-
- C/C++ attribute(constructor) functions;
-
- 动态库中的上面三种方法。
- 所有类的 +load 方法是在 main 函数之前、在主线程,以串行方式调用,因此任何一个 +load 方法的耗时大小将直接影响到 App 的启动耗时。
- Objective C Runtime 如下:
/***********************************************************************
* call_class_loads
* Call all pending class +load methods.
* If new classes become loadable, +load is NOT called