0
班傾倒和漏斗的原理是什麼?他們爲什麼可以倒出objc的方法?爲什麼他們不能轉儲用C風格編寫的函數?班傾倒和漏斗的原理是什麼
班傾倒和漏斗的原理是什麼?他們爲什麼可以倒出objc的方法?爲什麼他們不能轉儲用C風格編寫的函數?班傾倒和漏斗的原理是什麼
二進制文件中的C函數是由虛擬地址標識的代碼塊。 Objective-C的運行時是用C實現的,所以當選擇發送C函數被調用,以真正做到這一點:
id objc_msgSend(id self, SEL op, ...);
第一個參數是類或者實例將接收選擇。其次是selector
又名char*
名稱。由於這些選擇器名稱是作爲參數顯式傳遞的,所有這些都需要在可執行二進制文件中處理。這就是傾銷類的地方,因爲與C函數虛擬地址相比,有更多的信息。