iOS/OC 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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容