那么為什么會出現(xiàn)卡頓 為了解釋這個問題首先需要了解一下屏幕圖像的顯示原理。首先從 CRT 顯示器原理說起,如下圖所示。CRT 的電子槍從上到下逐...
前言 OC調(diào)用方法,底層是調(diào)用 objc_msgSend 發(fā)送消息。在發(fā)送消息時會經(jīng)過一系列的快速 查找、慢速查找,如果查找到對應的 IMP,直...
消息轉(zhuǎn)發(fā)objc_msgSend 可以分為兩個部分:一部分是objc_msgSend本身自己的快速路徑(匯編編寫的部分),另一部分是慢速路徑(用...
Runtime 介紹 runtime稱為運行時,它區(qū)別于編譯時 運行時 是代碼跑起來,被裝載到內(nèi)存中的過程,如果此時出錯,則程序會崩潰,是一個動...
objc_class中cache存儲的是什么? 首先,我們需要知道cache中存儲的到底是什么? 查看cache_t的源碼,發(fā)現(xiàn)分成了3個架構的...
類 的分析 類的分析 主要是分析 isa的走向 以及 繼承關系 定義兩個類 繼承自NSObject的類LGPerson, 繼承自LGPerson...
在介紹正文之前,首先需要理解一個概念:OC對象的本質(zhì)是什么? OC對象本質(zhì) 在探索oc對象本質(zhì)前,先了解一個編譯器:clang Clang cl...
結構體的對齊方式首先了解:結構體和數(shù)組一樣都是一塊連續(xù)的內(nèi)存空間。 結構體內(nèi)存對?分為3個部分:1.基本類型數(shù)據(jù)成員:結構體的第一個數(shù)據(jù)成員放在...
通過一段代碼開始分析alloc方法的本質(zhì): 分別輸出3個對象的內(nèi)容、內(nèi)存地址、指針地址,下圖是打印結果 通過打印結果可以看出,3個對象指向的是同...