runtime是什么?
runtime是一個c和匯編寫的動態庫,它就像一個小小的系統,將OC和C緊密關聯,這個系統主要做了兩件事情:
1、封裝C語言的結構體和函數,讓開發者在運行時創建、檢查或者修改類、對象和方法等等。
2、傳遞消息,找出方法的最終執行代碼。
舉例,A對象調用方法goHome.
OC的實現代碼:[A goHome];
C語言的實現代碼: objc_msgSend(A, @selector(goHome));
runtime提供的方法
1、objc_property_t * class_copyPropertyList ( Class cls, unsigned int *outCount ); //獲取屬性列表
2、Method * class_copyMethohList ( Class cls, unsigned int * outCount ); //獲取所有方法的數組
3、BOOL class_addMethod ( Class cls, SEL name, IMP imp, const char *types ); // 添加方法