看下面一句代碼,OC常見的初始化方法,大家應(yīng)該都很熟悉,但是它們究竟做了什么吶?
Father *father = [[Father alloc] init];
首先讓我們看一下調(diào)用alloc的時(shí)候它具體做了什么,根據(jù)object750源碼(源碼下載地址)可以看出以下流程:
alloc流程圖
然后通過750源碼可以看到init的調(diào)用方法:
- (id)init{
? ? return _objc_rootInit(self);
}
id
_objc_rootInit(id obj)
{
?? ?return?obj;
}
由上面源碼可以看出init只是返回了self,即init的調(diào)用者.