這玩意兒已經(jīng)在前面的文章里多次提到,但一直沒深入,這一篇就來(lái)研究研究。 runtime提供的和associated object有關(guān)的接口有3個(gè)...
上一篇最后講release的時(shí)候說(shuō)到,在release的最后,當(dāng)引用計(jì)數(shù)減為0的時(shí)候就進(jìn)入了dealloc的過(guò)程。這一篇就來(lái)講講dealloc和...
retain/release兩個(gè)關(guān)鍵字現(xiàn)在已經(jīng)很少見了,但了解一下底層的實(shí)現(xiàn)還是能幫助我們更深刻的理解oc的內(nèi)存管理。 retain 通常情況下...
因?yàn)楝F(xiàn)在普遍使用ARC,所以項(xiàng)目中幾乎看不到release這樣的字眼了,但是在一個(gè)不起眼的地方 —— main.m,有一個(gè)@autoreleas...
關(guān)于category的文章太多了,有介紹用法的,也有介紹源碼的。流傳較廣的應(yīng)該算是美團(tuán)那篇深入理解Objective-C:Category。 原...
我原本以為這兩個(gè)東西沒啥好寫的,結(jié)果是property確實(shí)沒啥好寫的,但是ivar就不少了。 本文不探討何時(shí)該選擇property,何時(shí)該選擇i...
之前已經(jīng)講過(guò)方法加載的全過(guò)程,protocol的加載過(guò)程與method是一樣的,就不再贅述了。不清楚的可以參考Runtime源碼 —— 方法加載...
在寫這篇文章之前,我關(guān)于方法調(diào)用的知識(shí)是比較零散的,甚至一度以為消息轉(zhuǎn)發(fā)就是方法調(diào)用的過(guò)程?,F(xiàn)有的文章大多根據(jù)蘋果的官方文檔Runtime Pr...
在上一篇文章中分析過(guò)類的結(jié)構(gòu)體,是這個(gè)樣子的: 那一篇主要是分析isa的源碼,這些字段并沒有深究,這一篇就來(lái)深入研究一下。我還是會(huì)先對(duì)源碼進(jìn)行分...