iOS/OC Rumtime 相關(guān)API

Objective-C Runtime

Objective-C runtime是一個運行庫,它提供對Objective-C語言的動態(tài)屬性的支持,因此所有Objective-C應(yīng)用程序都鏈接到它。Objective-C運行庫支持函數(shù)在位于/usr/lib/libobjc.A.dylib的共享庫中實現(xiàn)。

在Objective-C中編程時,通常不需要直接使用Objective-C運行時庫。此API主要用于開發(fā)Objective-C和其他語言之間的橋接層,或用于低級調(diào)試

Objective-C運行庫的macOS實現(xiàn)是Mac獨有的。對于其他平臺,GNU編譯器集合使用類似的API提供了不同的實現(xiàn)。本文檔僅涉及macOS實現(xiàn)。

底層Objective-C運行時API在osx版本10.5中進(jìn)行了顯著更新。許多函數(shù)和所有現(xiàn)有的數(shù)據(jù)結(jié)構(gòu)都被新函數(shù)所取代。舊的函數(shù)和結(jié)構(gòu)在32位模式下不推薦使用,而在64位模式中則不存在。即使在64位模式的類計數(shù)、協(xié)議計數(shù)、每個類的方法、每個類的ivar、每個方法的參數(shù)、每個方法的sizeof(所有參數(shù))和類版本號中,API也將多個值約束為32位int。此外,新的Objective-cabi(這里沒有描述)進(jìn)一步將sizeof(一個實例)限制為32位,將另外三個值限制為每個類的24位方法、每個類的ivar和sizeof(單個ivar)。最后,過時的NXHashTable和NXMapTable被限制為40億個條目。

常用的runtime API 主要有以下幾種:

1、objc_xxx系列函數(shù)

objc_xxx系列函數(shù)

2、class_xxx系列函數(shù)

class_xxx系列函數(shù)

3、object_xxx系列函數(shù)

object_xxx系列函數(shù)

4、method_xxx系列函數(shù)

method_xxx系列函數(shù)

5、property_xxx系列函數(shù)

property_xxx系列函數(shù)

6、protocol_xxx系列函數(shù)

protocol_xxx系列函數(shù)

7、ivar_xxx系列函數(shù)

ivar_xxx系列函數(shù)

8、sel_xxx系列函數(shù)

sel_xxx系列函數(shù)

9、imp_xxx系列函數(shù)

imp_xxx系列函數(shù)

注:runtime API 匯總文檔 百度云下載,密碼:zcs2

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容