文章中使用的源码 objc4-818.2
一、我们如何学习Runtime:
- Runtime简介
- 关键类型的底层结构
- isa:isa_t
- class:objc_class
- 方法:method_t
- 方法缓存:cache_t
- 学习他的method结构
- 消息机制
- 消息发送
- 动态方法解析
- 消息转发
- 常见的API使用
二、什么是Runtime
Runtime又叫运行时,是一套C语言实现的API,是iOS的系统核心之一。在我们开发过程中,可以给任意一个对象发送消息,在编译阶段只是确定了要向接收者发送这条消息,而接受者将要如何响应和处理这条消息,那就要看运行时来决定了。
在编程语言中有静态语言和动态语言,像C++他就是一门静态语言,他的方法调用在编译时已经决定了;二Objective-C是一门动态语言,他的方法调用是在运行时决定的。
isa
isa_t
Class
Method
方法缓存
方法调用
super的本质
isMemberOfClass、isKindOfClass
@dynamic
一个有意思的面试题