一、先創(chuàng)建一個(gè)Dog類,重寫dealloc方法,看看Dog類的實(shí)例什么時(shí)候釋放。工程改為MRC 工程: 發(fā)現(xiàn)實(shí)例并沒有釋放,在MRC 下需要添加...
之前研究Autorelease ,看了sunyxx 那篇博客,當(dāng)你驗(yàn)證代碼的時(shí)候,會(huì)發(fā)現(xiàn)和博客不一樣,原因就在于Tagged Pointer技術(shù)...
Class 內(nèi)部中有個(gè)方法緩存 cache_t,用散列表來緩存調(diào)用過的方法,可以提高訪問方法的速度。 一、cache_t結(jié)構(gòu) 1.struct ...
比較簡(jiǎn)單,只是記錄一下知識(shí)點(diǎn)。 一、 Class1.網(wǎng)上扣了一張圖片: Class 的一個(gè)結(jié)構(gòu)。關(guān)于為什么&FAST_DATA_MASK是一種計(jì)...
和之前一樣,也是從源碼中找到答案。我們都知道,實(shí)例對(duì)象的isa指針指向類對(duì)象,類對(duì)象的isa指針指向元類對(duì)象。 1.查找isa_t 刪除了一些其...
記錄一下,分六個(gè)方面來探究block,一步步分析。 一.block底層結(jié)構(gòu)寫一個(gè)最簡(jiǎn)單的block: c++重寫:xcrun -sdk ipho...
記錄于此! 1.代碼層面驗(yàn)證2.閱讀源碼 一、代碼 推導(dǎo):1.只導(dǎo)入頭文件,不會(huì)調(diào)用+initialize2.第一次發(fā)消息時(shí)候調(diào)用+initia...
這次其實(shí)是通過閱讀源碼的方式,觀察iOS是如何調(diào)用的load 方法。 下載源碼,找到load 相關(guān)的函數(shù)。如何下載源碼,翻看我之前的幾篇博客。 ...
細(xì)致的看了下Category的東西,記錄一下。 Category用途:1.進(jìn)行類擴(kuò)展2.hook一個(gè)方法3.重寫已有類中的一個(gè)方法 跟著代碼走不...