课程简介
本课程从NSObject和Class讲起,然后会介绍本课程的核心内容——自省和Method Swizzling,最后通过iOS Runtime在项目中的实际使用,达到学以致用的目的。
目标收益
本课程系列将帮助初中级学员快速成长,掌握iOS Runtime技术和热修复技术涉及的方方面面,帮助高级学员在项目中创造性的使用这门技术。
培训对象
本课程对于千万级用户的App产品和小量的App产品都适用。
课程大纲
追根溯源看NSObject |
1. weak 2. AutoreleasePool |
Class的内部结构 |
1. Class内部成员 2. MetaClass 3. SEL和IMP 4. 消息转发 |
自省和Method Swizzling |
1. 自省 2. Method Swizzling 3. 关联对象 |
Runtime使用场景 |
1. AOP 2. 代理模式 3. 日志 4. PV和UV 5. 热修复原理简介 |
课堂练习 |
1. 使用Runtime为数组增加越界控制 2. 使用Runtime实现多重继承 3. 使用Runtime实现对象判空 |
iOS热修复技术简介 |
1. 为什么我们需要热修复技术 2. Wax和WaxPatch 3. JSPatch横空出世 4. JSPatch和WaxPatch的比较 |
JavaScriptCore简介 |
1. JSContext和JSValue 2. OC调用JS 3. JS调用OC |
JSPatch实现原理 |
1. 启动流程 2. 解析js脚本 3. 方法替换机制 |
JSPatch使用 |
1. require 2. 调用OC方法 3. defineClass 4. 特殊类型的处理 5. 集合处理 6. Block 7. weak和strong修饰符 8. GCD 9. 常量和枚举 10. 全局变量 11. 宏 12. 调试 13. JSPatch代码转换器 |
JSPatch策略版本更新 |
1. 下载JSPatch的时机 2. 运行JSPatch的时机 3. 服务器端的技术 4. 补丁包的签名和校验 |
课堂练习 | 1. 使用JSPatch修复线上bug |
追根溯源看NSObject 1. weak 2. AutoreleasePool |
Class的内部结构 1. Class内部成员 2. MetaClass 3. SEL和IMP 4. 消息转发 |
自省和Method Swizzling 1. 自省 2. Method Swizzling 3. 关联对象 |
Runtime使用场景 1. AOP 2. 代理模式 3. 日志 4. PV和UV 5. 热修复原理简介 |
课堂练习 1. 使用Runtime为数组增加越界控制 2. 使用Runtime实现多重继承 3. 使用Runtime实现对象判空 |
iOS热修复技术简介 1. 为什么我们需要热修复技术 2. Wax和WaxPatch 3. JSPatch横空出世 4. JSPatch和WaxPatch的比较 |
JavaScriptCore简介 1. JSContext和JSValue 2. OC调用JS 3. JS调用OC |
JSPatch实现原理 1. 启动流程 2. 解析js脚本 3. 方法替换机制 |
JSPatch使用 1. require 2. 调用OC方法 3. defineClass 4. 特殊类型的处理 5. 集合处理 6. Block 7. weak和strong修饰符 8. GCD 9. 常量和枚举 10. 全局变量 11. 宏 12. 调试 13. JSPatch代码转换器 |
JSPatch策略版本更新 1. 下载JSPatch的时机 2. 运行JSPatch的时机 3. 服务器端的技术 4. 补丁包的签名和校验 |
课堂练习 1. 使用JSPatch修复线上bug |