iOS/Swift Rumtime API

Objective-C Runtime

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系列函数

objc_xxx系列函数

2、class_xxx系列函数

class_xxx系列函数

3、object_xxx系列函数

object_xxx系列函数

4、method_xxx系列函数

method_xxx系列函数

5、property_xxx系列函数

property_xxx系列函数

6、protocol_xxx系列函数

protocol_xxx系列函数

7、ivar_xxx系列函数

ivar_xxx系列函数

8、sel_xxx系列函数

sel_xxx系列函数

9、imp_xxx系列函数

imp_xxx系列函数

注:runtime API 汇总文档 百度云下载,密码:zcs2

猜你喜欢

转载自blog.csdn.net/lin1109221208/article/details/108395259