+ load方法簡要總結

+ (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方法

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容