动态运行时(Runtime)

在这里插入图片描述
objc_object:
在这里插入图片描述
objc_class:
在这里插入图片描述
isa
在这里插入图片描述
在这里插入图片描述
cache_t
在这里插入图片描述
局部性原理:调用频率高的放到缓存,提高效率
在这里插入图片描述
class_data_bits_t
在这里插入图片描述
在这里插入图片描述
class_ro_t
在这里插入图片描述
method_t
在这里插入图片描述
在这里插入图片描述
整体数据结构
在这里插入图片描述
对象、类对象、元类对象

类对象:存储实例方法列表等信息
元类对象:存储类方法列表等信息

在这里插入图片描述
消息传递
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
父类逐级查找
在这里插入图片描述
消息转发
在这里插入图片描述
Method-Swizzling
在这里插入图片描述
动态添加方法
class_addMethod

动态方法解析
@dynamic
动态运行时语言将函数决议推迟到运行时
编译时语言在编译器进行决议
已编译完成无法在动态添加变量

发布了83 篇原创文章 · 获赞 12 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_38885024/article/details/103121811