Skip to content

Latest commit

 

History

History

Runtime

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 

Runtime从入门到进阶

Objective-C 语言尽可能将决策从编译时间、链接时间推迟到运行时。只要有可能,它就会动态地执行任务。这意味着 Objective-C 不仅需要编译器,还需要运行时系统(runtime system)执行编译的代码。Objective-C 的动态性就是由 runtime 来支撑和实现的。

借助 runtime 可以实现很多功能,如字典转模型(MJExtension),查看私有成员变量,替换方法实现(method swizzling),为分类增加属性(associated objects)等。JSPatch热更新也是利用了 runtime,以便实现动态添加、改变方法实现。

这个demo包含Runtime从入门到进阶一Runtime从入门到进阶二两篇文章的源码。文章涉及内容如下:

  • Runtime 预览
  • 对象和类
    • 对象 object
    • 类 Class
    • 元类 meta class
    • Method
  • 消息发送
  • 动态方法解析
  • 消息转发
    • 快速转发
    • 常规转发
  • 具体应用
    • 交换方法 Method Swizzling
    • 关联对象 Associated Objects
    • 创建类
    • 查看私有成员变量
  • 常见问题
    • super的本质
    • isKindOf: isMemberOf:

详细介绍查看下面文章:

https://github.com/pro648/tips/wiki/Runtime从入门到进阶一

https://github.com/pro648/tips/wiki/Runtime从入门到进阶二