首先,简单说一下,为什么要用JSPatch,做iOS开发的人都知道,一旦程序出现了紧急BUG,各种申请苹果的加急审核,然而还被拒绝的心情,因此,不得不提一下腾讯的小伙子写的这个JSPatch.废话不多说,先来个学习链接,可以在第一个链接学习到JSPatch与OC交互的一些基本语法,其实笔者很多语法都是自己看着wiki摸索出来的,也就是说wiki上的语法只是写简单的,不过对于修复一些简单的小BUG而言,足够了,第二个链接是用来翻译代码的,大家做辅助写代码的工具就好,因为翻译正确率真的不是太高~~
bang590.github.io/JSPatchConvertor/
1.先补充一下wiki中对枚举的解释
因为JS是弱类型的语言,所以JS是没有枚举这个类型的,所以对于OC中的一些枚举类型,写在我们的JS中我们的程序会直接崩溃的,所以个人建议不要顺着wiki中直接去些那些魔法数字,会对程序的阅读性不高.笔者建议用下面这种方式重新定义一下枚举
//点击方式枚举
global.UIControlEventTouchUpInside = 1 << 6;
(如果有人对global.UIControlEventTouchUpInside)这个方法有疑问的话,下面有笔者附上的一个github地址,大家去参考一下笔者写的demo.具体的一些如何新加类,控制器之间的传值,大家也可以去具体看笔者的demo.
2.JSPatch如何使用
1>导入JS框架(pod 'JSPatch')
2>在AppDelegate中导入JPEngine.h
笔者注释掉的那段代码呢,是JSPatch另一种调用JS代码的规则,不过是不支持多文件的,第二种调用规则是支持多文件的.使用起来就这么简单,只要和自家服务器做好配合就行.
下面是笔者写的一个demo链接GitHub - 995996812/JSPatchTbaleViewDemo: JSPatch
3.原理
至于JSPatch一些相互转换的原理,笔者提供一个博客地址,感觉这个写的还是比较好的!
JSPatch实现原理详解:让JS调用 - 替换任意OC方法 - CocoaChina_让移动开发更简单
小伙伴们,感觉提供的学习资源足够的话!请给个好评哦!!!