一、初始化方法不同 swift文件轉(zhuǎn)sil文件命令 結(jié)構(gòu)體成員有默認(rèn)值時(shí),編譯器自動(dòng)生成 init(age: Int = 20) 和 init(...
如果在類中使用mutating關(guān)鍵字,編譯器會(huì)報(bào)錯(cuò)'mutating' isn't valid on methods in classes or...
release最終調(diào)用objc_object::rootRelease 解讀:1.判斷是否是taggedPointer,如果是,則返回false...
1. _dyld_start入口函數(shù) 在一個(gè)類的+ (void)load函數(shù)上打斷點(diǎn),查看此時(shí)的堆棧信息如下: 可以看到棧底信息是從dyld源碼...
1. 動(dòng)態(tài)方法解析 resolveMethod_locked源碼 分析:根據(jù)傳入的cls是否是元類分別調(diào)用resolveInstanceMeth...
在objc_msgSend源碼解析(一)[http://www.itdecent.cn/p/55daf526120d]中最后進(jìn)入_lookUp...
objc_msgSend源碼解析(一)[http://www.itdecent.cn/p/55daf526120d]objc_msgSend源...
cache_t源碼結(jié)構(gòu)精簡(jiǎn)后的cache_t源碼如下: 可以看到有個(gè)重要的函數(shù)void incrementOccupied();,字面意思增加占...
1. 類對(duì)象獲取 根據(jù)以上代碼可以看到不管是對(duì)象調(diào)用class方法還是類調(diào)用class方法,得到的都是類對(duì)象,且不是元類對(duì)象,那么class底層...