Objective-C runtime
是一个运行库
,它提供对Objective-C语言的动态属性的支持,因此所有Objective-C应用程序都链接到它。Objective-C运行库支持函数在位于/usr/lib/libobjc.A.dylib
的共享库中实现。
在Objective-C中编程时,通常不需要直接使用Objective-C运行时库。此API主要用于开发Objective-C和其他语言之间的桥接层
,或用于低级调试
。
Objective-C运行库的macOS实现是Mac独有的。对于其他平台,GNU编译器集合使用类似的API提供了不同的实现。本文档仅涉及macOS实现。
底层Objective-C运行时API在osx版本10.5中进行了显著更新。许多函数和所有现有的数据结构都被新函数所取代。旧的函数和结构在32位模式下不推荐使用,而在64位模式中则不存在。即使在64位模式的类计数、协议计数、每个类的方法、每个类的ivar、每个方法的参数、每个方法的sizeof(所有参数)和类版本号中,API也将多个值约束为32位int。此外,新的Objective-cabi(这里没有描述)进一步将sizeof(一个实例)限制为32位,将另外三个值限制为每个类的24位方法、每个类的ivar和sizeof(单个ivar)。最后,过时的NXHashTable和NXMapTable被限制为40亿个条目。
常用的runtime API 主要有以下几种:
1、objc_xxx系列函数
2、class_xxx系列函数
3、object_xxx系列函数
4、method_xxx系列函数
5、property_xxx系列函数
6、protocol_xxx系列函数
7、ivar_xxx系列函数
8、sel_xxx系列函数
9、imp_xxx系列函数
注:runtime API 汇总文档 百度云下载,密码:zcs2