摘要: 最近打算寫一些ObjC中比較底層的東西,尤其是 runtime 相關(guān)的。從哪里入手呢?那當然是最基本的類與對象。與C++相比,ObjC中的類與對象結(jié)構(gòu)要簡潔與一致得多(參考《深度探索C++對象模型》,你就知道C++中類與對象結(jié)構(gòu)的復(fù)雜)。本文將詳細講解ObjC中類與對象的結(jié)構(gòu),下回將講如何在 runtime 時操作類。
總結(jié):ObjC 為每個類的定義生成兩個 objc_class ,一個即普通的 class,另一個即 metaclass。我們可以在運行期創(chuàng)建這兩個 objc_class 數(shù)據(jù)結(jié)構(gòu),然后使用 objc_addClass 動態(tài)地創(chuàng)建新的類定義。這個夠動態(tài)夠強大的吧?下回講演示如何在運行期動態(tài)創(chuàng)建新類。
閱讀全文