Skip to content

Latest commit

 

History

History
161 lines (116 loc) · 8.11 KB

0x01-语言基础.MD

File metadata and controls

161 lines (116 loc) · 8.11 KB

ObjC 基础

为什么说OC是动态语言?

整体上说明动态性

从三个方面说明

从C++底层对动态性做些说明

动态类型

注意,类对象调用先取 object_getClass (取类的metaClass),实例调用取 isa 指针。

注意,测试数据项目

注意,对字符串的分析

思考多继承及类簇关系

动态加载

注意动态加载图片、xib 区别、NSBundle 类相关方法

注意动态加载理解

关注延迟加载、bundle 加载机制

注意,使用可选包扩展正在运行的程序实践

注意,动态创建类、方法、属性,动态代理、AOP

加载过程

Runtime

objc_class、objc_object、objc_category,isa、super 流程图,对象关联 SEL、IMP、Method,消息转发,Method Swizzling

运行时 - AOP

  1. https://www.jianshu.com/p/addd4eac54ed
  2. https://www.jianshu.com/p/97017f88f584
  3. APM

运行时 - 数模转换

  1. https://blog.csdn.net/sifenkesi1/article/details/52621906
  2. https://www.jianshu.com/p/1dc46f5ff8af 运行时 - 热更新
  3. https://github.com/bang590/JSPatch/wiki/JSPatch-%E5%AE%9E%E7%8E%B0%E5%8E%9F%E7%90%86%E8%AF%A6%E8%A7%A3
  4. https://mp.weixin.qq.com/s/x0hpbESSlVyq4haEzqSkcQ
  5. https://mp.weixin.qq.com/s/qovdmuQzMhtjC6DHWI4K1A
  6. https://blog.csdn.net/guojin08/article/details/54310858
  7. https://www.jianshu.com/p/739c5c5160f1
  8. https://github.com/NativeScript/ios-runtime

运行时 - 动态执行器

  1. http://satanwoo.github.io/2018/04/01/jsengine/

内存相关

书籍

Block

其它