runtime
什么是runtime
先给放出个apple官方链接,习惯看英文文档的的直接看这个吧。
根据官方文档来看,我觉得可以将runtime本质理解为一个OC语言操作系统,它将尽可能多的决策从编译时和链接时推迟到运行时。而苹果提供的runtime API则是从这套系统中抽出来的部分接口提供给我们使用。它的实现则是基于消息机制。
了解oc的消息机制首先要了解对象与方法的本质。
clang
对象与方法本质
oc对象本质--结构体
方法本质 -- 发送消息 msg_send
sel 方法名 imp 函数实现的指针 方法签名
实例对象,类对象,元类对象
iskindof ismemberof
self 谁调用就是谁
消息发送
runtime api
NSObject
OC上层 @selector
动态方法解析
消息转发
runtime 使用
切面编程 消息转发编程
数组越界处理 method-swizzling hook objectAtIndex 消息转发返回nil
动态开辟类,添加属性,
网友评论