调用顺序
+load方法会在runtime加载类、分类时调用
每个类、分类的+load,在程序运行过程中只调用一次
调用顺序
-
先调用类的+load
1、 按照编译先后顺序调用(先编译,先调用)
2、 调用子类的+load之前会先调用父类的+load -
再调用分类的+load
1、按照编译先后顺序调用(先编译,先调用)
objc4源码解读过程:objc-os.mm
_objc_init
load_images
prepare_load_methods
schedule_class_load
add_class_to_loadable_list
add_category_to_loadable_list
call_load_methods
call_class_loads
call_category_loads
(*load_method)(cls, SEL_load)
+load方法是根据方法地址直接调用,并不是经过objc_msgSend函数调用
网友评论