JSPatch

原理

oc的运行时原理,Runtime

实现
1、class_addMethod:如果本类中包含一个同名的实现,则函数会返回 NO。如果要修改已存在实现,可以使用 method_setImplementation。
2、class_replaceMethod:该函数的行为可以分为两种:如果类中不存在 name 指定的方法,则类似于 class_addMethod 函数一样会添加方法;如果类中已存在 name 指定的方法,则类似于 method_setImplementation 一样替代原方法的实现。
3、method_setImplementation:重置方法实现。
4、method_exchangeImplementations:交换方法实现。
简介

JSPatch 是一个开源项目(Github链接),只需要在项目里引入极小的引擎文件,就可以使用 JavaScript 调用任何 Objective-C 的原生接口,替换任意 Objective-C 原生方法。目前主要用于下发 JS 脚本替换原生 Objective-C 代码,实时修复线上 bug

你可能感兴趣的:(JSPatch)