+ (void)load方法
類的+load方法在main函數之前加載
然后是加載分類的+load方法
最后才加載main函數
原因:因為ObjC 對于加載的管理主要使用了兩個列表,分別是?
loadable_classes?和?
loadable_categories
其中的add_class_to_loadable_list就是將未加載的類添加到 loadable_classes 數組中,add_category_to_loadable_list就是將未加載的分類添加到 loadable_classes 數組中
加載順序是loadable_classes 然后?add_category_to_loadable_list
+load方法和+initialize方法的區別
load方法是在程序運行后立即執行,而init方法是在類的方法第一次被調用時執行;
load方法自身未定義不會沿用父類方法,而init會
分類中會執行所有的load方法(在類的load方法完后),但分類的init方法會只執行一個并覆蓋類的init方法