JSPatch一些自己使用后的发现:
1.JS不区分整数和浮点数。解析字典以后的value不需要通过 floatValue等方法转换,而是自动就转换成对应的数据类型。
2.nil在JSPatch中 不能使用,如果是用if(a == nil)应该用if(!a)来代替。
3.self.view.setFrame({x:0,y:0,width:100,height:100}); 设置frame必须这种格式,如果是CGSize那么就在括号里写上{width:100,height:100}。当我们需要获得全屏的宽度的时候我们需要怎么做呢?var tempScreenHeight = UIScreen.mainScreen().bounds().height 明显可以看到 他与我们平常相比 bounds之后 可以直接获取到height 而不是 size.height这个需要注意。
3.== 在JSPatch中只能比较基本数据类型,遇到自己写的类 或者model是无法比较的。
4.C底层的方法在JSPatch中不能直接调用,宏如果想要调用,1.如果没有与C有关的语句可以直接写一个函数方法进行调用。2.举例如下:require(’JPEngine’).addExtensions([‘XXX’])增加拓展
5.首先从 OC 返回的 NSArray / NSDictionary 对象是不能直接用 for...in 遍历的,需要调用 .toJS(), toJS是它给的一个接口,把OC对象转成JS对象。
6.在OC中我们会使用 Arr[100],来获得 数组的101位,而在js中如果你是OC代码中的数组则需要 objectAtIndex(i);如果你是在JS中自己var a = [1,2,3],那么你要拿到他的数目你要用的是 a.length,但是 如果是OC转过来的数组 则需要用 a.count();如果 OC的使用了length那么数目永远返回0,如果 JS使用count是会报错的。
7.我们平常用的NSString 的format方法 在JS中 可以直接用+连接,比如 var C = ’A’ + ‘B’;
如果遇到不是str的可以用String(x)的方式来转成str类型。
8.在里面使用Block的时候要注意 不能使用self。如果你要用需要先在外面var slf = self;否则是会报错的。
9.我们在用一些方法如tableview initWithStyle_reuseIdentifier 我们要注意 style是枚举,往往是str我们需要用单引号或者双引号括起来。或者直接用数字来表示。
’’里面带的一个工具可以把OC代码转成JS,多次试验后发现基本出错的问题也就是我上面的一些问题:只要注意我上面的问题基本是不会错了
网址:http://bang590.github.io/JSPatchConvertor/
还有个最新出的在JSPatchX是一个插件可以在Xcode中使用:
https://github.com/bang590/JSPatchX
相关文章
- java中最容易犯错的特殊字符
- 整理一些C++面试容易被问到的问题及其答案
- html5一些容易忽略的细节
- setTimeout和setInterval不容易注意到的一些细节
- 记录一些容易遗忘的东西
- mysql中一些简单但是新手容易犯的错误
- Eclipse中一些真正常用的快捷键 - 彼岸的地方
- ffmpeg和opencv一些容易影响图片清晰度的操作
- 朱晔和你聊Spring系列S1E6:容易犯错的Spring AOP
- 1 开发一个注重性能的JDBC应用程序不是一件容易的事. 当你的代码运行很慢的时候JDBC驱动程序并不会抛出异常告诉你。 本系列的性能提示将为改善JDBC应用程序的性能介绍一些基本的指导原则,这其中的原则已经被许多现有的JDBC应用程序编译运行并验证过。 这些指导原则包括: 正确的使用数据库MetaData方法 只获取需要的数据 选用最佳性能的功能 管理连