Objective-C語言使用「消息結構」而非「函數調用」數據結構
消息結構表示以下:函數
// Messageing (Objective-C) Object *obj = [Object new]; [obj performWith:parameter and:parameter2];
函數調用表示以下:性能
// Function Calling(C++) Object *obj = new Object; obj->perform(parameter1, parameter2);
區別在於:使用消息結構的語言,其運行時所執行的代碼由運行環境來決定的;而使用函數調用的語言,則由編譯器決定spa
Objective-C使用動態綁定的消息結構,也就是說,在運行時纔會檢查對象的類型,接收一條消息後,究竟應該執行何種代碼。有運行期環境而非編譯器來決定。code
Objective-C的重要工做都由「運行期組件」而非編譯器來完成的,使用Objective-C的面向對象特性所需的所有數據結構及函數都在運行期組件裏面,即運行期組件中包含所有內存管理方法。orm
運行期組件本質上就是一種與開發者所編代碼相連接的「動態庫」,其代碼能把開發者編寫的全部程序粘合起來。因此更新運行期組件,便可提高應用程序的性能。對象