load 和 initialize
總結(jié):
- load和initialize方法都會在實例化對象之前調(diào)用,以main函數(shù)為分水嶺餐抢,前者在main函數(shù)之前調(diào)用侄刽,后者在之后調(diào)用泉孩。這兩個方法會被自動調(diào)用,不能手動調(diào)用它們萧芙。
- load和initialize方法都不用顯示的調(diào)用父類的方法而是自動調(diào)用给梅,即使子類沒有initialize方法也會調(diào)用父類的方法,而load方法則不會調(diào)用父類双揪。
- load方法通常用來進行Method Swizzle动羽,initialize方法一般用于初始化全局變量或靜態(tài)變量。
- load和initialize方法內(nèi)部使用了鎖渔期,因此它們是線程安全的运吓。實現(xiàn)時要盡可能保持簡單,避免阻塞線程疯趟,不要再使用鎖拘哨。