+load
- 1、只要程序啟動就會將所有類的代碼加載到內存中(在main函數執行之前), 放到代碼區(無論該類有沒有被使用到都會被調用)
- 2、
+load
方法會在當前類被加載到內存的時候調用, 有且僅會調用一次 - 3、當父類和子類都實現
+load
方法時, 會先調用父類的+load
方法, 再調用子類的+load
方法 - 4、先加載原始類,再加載分類的
+load
方法 - 5、當子類未實現
+load
方法時,不會調用父類的+load
方法 - 6、多個類都實現
+load
方法,+load
方法的調用順序,與Compile Sources
中出現的順序一致
+initialize
- 1、當類第一次被使用的時候就會調用(創建類對象的時候)
- 2、
initialize
方法在整個程序的運行過程中只會被調用一次, 無論你使用多少次這個類都只會調用一次 - 3、
initialize
用于對某一個類進行一次性的初始化 - 4、先調用父類的
initialize
再調用子類的initialize
- 5、當子類未實現
initialize
方法時,會把父類的實現繼承過來調用一遍,再次之前父類的initialize
方法會被優先調用一次 - 6、當有多個
Category
都實現了initialize
方法,會覆蓋類中的方法,只執行一個(會執行Compile Sources
列表中最后一個Category
的initialize
方法)
更多:iOS面試題 答案合集