在重寫init方法時(shí),總會(huì)self = [super init]
- (instancetype)init {
self = [super init];
if (self) {
//一些操作
}
return self;
}```
該方法中悯搔,最先運(yùn)行的是 [super init]思灌,其作用是讓父類完成其自身的初始化工作俺叭,而通過(guò)調(diào)用父類的init方法最終可讓繼承了NSObject的類執(zhí)行它所需的所有操作,以便對(duì)象能夠響應(yīng)消息并處理保留計(jì)數(shù)器泰偿。
另外熄守,在內(nèi)存方面看,self是通過(guò)固定距離尋找實(shí)例變量所在的內(nèi)存位置的耗跛。如果從init方法返回一個(gè)新對(duì)象裕照,則需要更新self,以便氣候的實(shí)例變量的引用可以變映射到正確的內(nèi)存位置。
最后课兄,如果在初始化一個(gè)對(duì)象時(shí)出現(xiàn)問(wèn)題了牍氛,[super init]會(huì)返回一個(gè)nil,因最終init方法就會(huì)返回一個(gè)nil烟阐,從而避免使用未初始化成功的對(duì)象