Objective-C 是一個動態性很強的語言。編譯好的內容在運行的時候的可以改變(Runtime的作用)。動態性就是Runtime API支持的。
Runtime API提供的接口基本都是C語言的,源碼由C/C++/匯編語言編寫
[圖片上傳中...(image.png-b0cd34-1532935863840-0)]
前期學習
要想學習Runtime,首先要了解它底層的一些基本數據結構,比如isa指針。
isa指針
isa指針
isa對應位域的含義
class結構
class結構
class_rw_t 可讀可寫
class_ro_t 只讀
method_t的底層結構
method_t里面types中的類型編碼
方法緩存
OC的消息機制
objc_msgSend的執行流程
消息發送執行流程
動態方法解析流程
動態添加方法
消息轉發機制流程
消息轉發流程
什么是Runtime?平時項目中有用過嗎
super 面試題
觀察super面試題
解析答案
image.png