JSPatch 初体验 ——各种坑和工具、文章(不定期更新)
2017-02-13 12:07
351 查看
前言:前阵子项目刚上线很闲,自己学新东西,突然发现一个很牛的东东——JSPatch, 线上直接改BUG的利器啊(直接用来写模块个人现在还没那技术,而且React native会更好,虽然我不会~。~),虽然一点都不懂JS,但是不需要审核,直接线上改bug的诱惑太大了,果断花两天时间学了下JS大体懂了,然后开始研究JSPatch。
首先先把几个很好用的工具和文章贴在下面,工欲善其事必先利其器,有了这几个工具和前人经验文章,保证你少走大量弯路.(强烈推荐使用文章里让打开的js断点调试,非常有用!!!)
1、JSPatch专用 OC 转化 JS工具(虽然很多并不准确,不过初学者用它比一下一下打方便多了,可以类似用翻译软件翻译英文一样,先翻译再改不对的地方):JSPatchConvertor
2、JSPatchX —— JSPatch专用Xcode自动补全插件:JSPatchX
3、JSPatch 基础用法 : JSPatch 基础用法
4、JSPatch 常见问题 : JSPatch 常见问题
5、简书上的两篇前辈总结经验:使用JSPatch问题若干及解决方法 iOS开发
— JSPatch
(虽然都是因为没有认真仔细看JSPatch基础用法导致的~。~,原谅我比较心急,直接就像上手开始用)
1.私有成员变量不能直接访问,必须用valueForKey 或者 setValue_forKey调用。比如:
2.JS数组、字典、字符串等等和OC的都不一样
详见工具里面的文章,不具体说了,都是泪
3.JS不能识别枚举,比如:
UIPageViewControllerTransitionStylePageCurl和UIPageViewControllerNavigationOrientationHorizontal全部都不能识别啊有木有!!!所以我默默的都直接改成了对应的枚举值
4.必须在require里面声明了相关类,才能使用相应方法,一般写在main.js的最上面,比如:
CGRect也是一个坑,最多的是在设置frame的时候,比如:
view.frame.origin.x
在js应该写成:view.frame().x (特别注意不是view.frame().origin().x)
CGRectMake(20, 20, 100, 100)
应该写成:{x:20, y:20, width:100, height:100}
工具
首先先把几个很好用的工具和文章贴在下面,工欲善其事必先利其器,有了这几个工具和前人经验文章,保证你少走大量弯路.(强烈推荐使用文章里让打开的js断点调试,非常有用!!!)1、JSPatch专用 OC 转化 JS工具(虽然很多并不准确,不过初学者用它比一下一下打方便多了,可以类似用翻译软件翻译英文一样,先翻译再改不对的地方):JSPatchConvertor
2、JSPatchX —— JSPatch专用Xcode自动补全插件:JSPatchX
3、JSPatch 基础用法 : JSPatch 基础用法
4、JSPatch 常见问题 : JSPatch 常见问题
5、简书上的两篇前辈总结经验:使用JSPatch问题若干及解决方法 iOS开发
— JSPatch
各种坑
(虽然都是因为没有认真仔细看JSPatch基础用法导致的~。~,原谅我比较心急,直接就像上手开始用)1.私有成员变量不能直接访问,必须用valueForKey 或者 setValue_forKey调用。比如:
self.valueForKey("_moreModelArray").count();self.setValue_forKey(NSMutableArray.array(), "_vcArray");
2.JS数组、字典、字符串等等和OC的都不一样
详见工具里面的文章,不具体说了,都是泪
3.JS不能识别枚举,比如:
_pageViewController = [[UIPageViewController alloc] initWithTransitionStyle:UIPageViewControllerTransitionStylePageCurl navigationOrientation:UIPageViewControllerNavigationOrientationHorizontal options:0];
UIPageViewControllerTransitionStylePageCurl和UIPageViewControllerNavigationOrientationHorizontal全部都不能识别啊有木有!!!所以我默默的都直接改成了对应的枚举值
var pageViewController = UIPageViewController.alloc().initWithTransitionStyle_navigationOrientation_options(0, 0, 0);
4.必须在require里面声明了相关类,才能使用相应方法,一般写在main.js的最上面,比如:
require('NSMutableArray,NSString,UIPageViewController, NSKeyedUnarchiver, FSProductFirstViewController, FSProductMoreDetailViewController, UIScreen');
CGRect也是一个坑,最多的是在设置frame的时候,比如:
view.frame.origin.x
在js应该写成:view.frame().x (特别注意不是view.frame().origin().x)
CGRectMake(20, 20, 100, 100)
应该写成:{x:20, y:20, width:100, height:100}
相关文章推荐
- 自己总结的CSS以及JS各种库的在线CDN引用地址,链接可以直接复制(不定期更新)
- 【工具】各种网络工具 相当实用 【不定期更新】
- React-Native or jspatch 热更新在苹果那里不行了
- JS调试,不定期更新
- JSPatch简介 – 动态更新iOS APP
- JS实现的文章字符串中某个字符总个数统计在线小工具实例
- 各种具有哲理性启发性的文章笑话语录视频等正能量(不断更新)
- 安卓常用到的几个工具类(不定期更新)
- node.js学习总结(不定期更新)
- 各种排序算法汇总(JAVA版,不定期更新)
- 前端(html,css,js)各种摘抄整理(持续更新ing)
- iOS之热修复JSPatch 补丁更新管理
- iOS_Pass iOS hotfix 热更新 JSPatch 个人服务搭建方案
- JSPatch – 动态更新iOS APP
- 013 - Global公共JS类(不定期更新)
- 笔记:java开发中一些好用的开源jar包工具(将不定期持续更新)
- Oracle 更新 OPatch 工具版本 的方法 说明
- 要看的文章(不定期更新)
- js工具方法——持续收集更新
- 各种工具下载网址(持续更新中......)