2017-04-02 58 views

回答

0

二進制文件中的C函數是由虛擬地址標識的代碼塊。 Objective-C的運行時是用C實現的,所以當選擇發送C函數被調用,以真正做到這一點:

id objc_msgSend(id self, SEL op, ...); 

第一個參數是類或者實例將接收選擇。其次是selector又名char*名稱。由於這些選擇器名稱是作爲參數顯式傳遞的,所有這些都需要在可執行二進制文件中處理。這就是傾銷類的地方,因爲與C函數虛擬地址相比,有更多的信息。