JSPatch一些容易犯错的地方
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
JSPatch一些容易犯错的地方的更多相关文章
- 关于C#编程中引用与值类型赋值的一些容易犯错的地方
值类型与引用类型的区别在于:值类型在赋值的时候是拷贝值,引用类型在赋值的时候的拷贝引用.记住这一个原则,我们再来分析一些具体情况: PointStruct pt1 = ,); PointStruct ...
- 使用vue-cli脚手架安装的eslint 容易犯错的地方
1. 函数名字与括号之间要有空格. 2. 不要使用双引号 3. 不要有多月的空行 4.函数参数的逗号后要有空格 5.每个结束语句以后不用加“分号”
- javascript sort方法容易犯错的地方
sort方法用来对数组排序非常方便.但是sort(func)这个func参数的构造却很容易混淆. sort判断func的返回值是判断正负,而不是ture和false.所以务必保证返回值要么负数要么正数 ...
- caffe实现focal loss层的一些理解和对实现一个layer层易犯错的地方的总结
首先要在caffe.proto中的LayerParameter中增加一行optional FocalLossParameter focal_loss_param = 205;,然后再单独在caffe. ...
- 朱晔和你聊Spring系列S1E6:容易犯错的Spring AOP
阅读PDF版本 标题有点标题党了,这里说的容易犯错不是Spring AOP的错,是指使用的时候容易犯错.本文会以一些例子来展开讨论AOP的使用以及使用过程中容易出错的点. 几句话说清楚AOP 有关必要 ...
- Makefileeasy犯错的语法
1.引言 近期学习android的Build系统,接触最多的自然就是Makefile语法.发现非常多easy出错的地方,不避开这些错误语法没法真正了解Makefile的内涵.以下就介绍遇到的一些让人困 ...
- 致DBA:为什么你经常犯错,是因为你做的功课不够
专职做DBA已经6年多的事件了,看同行.同事犯了太多的错误,自己也犯了非常多的错误.一路走来,感触非常深.然而绝大多数的错误其实都是很低级的错误.有的是因为不了解某个引擎的特性导致:有的是因为对线上环 ...
- vue router引入路由与路由配置容易犯错的地方与常见的报错与处理报错
首先npm安装vue-router插件,就不说了其次: 先看下我本地的目录结构吧 第一步:在src目录下新建一个专门存放router的index.js文件里面的内容为: import Vue from ...
- 不知道哪里alert undefined 用下面的语句是js报错.F12能提示报错的地方window.alert=function(aa){ if (typeof (aa)"undefined"){ throw "就是这";}};
不知道哪里alert undefined 用下面的语句是js报错.F12能提示报错的地方 var oldalert=window.alert; window.alert=function(aa){ i ...
随机推荐
- 使用Html5+C#+微信 开发移动端游戏详细教程 :(一)序(关于作者创业失败的感想)
说起梦想,我清楚的记得2012年7月初毕业,拿到毕业证书的那天果断买好了次日南下去深圳的绿皮火车票,500多块,26个小时车程.第二天就拖上行李到了深圳. 一开始的想法仅仅是过去想见见世面,学习点新技 ...
- iOS-沙盒路径总结、文件管理NSFileManager总结
// // ViewController.m // 沙盒操作 // // Created by mncong on 15/11/26. // Copyright © 2015年 mancong ...
- Linux常用命令回顾
文件操作:ls 查看文件ls -a 查看全部文件,包括隐藏文件(以.开头)ls -l 查看文件的详细信息(ll同样的效果)ls -lh 查看文件的详细信息,人性化显示,文件大小标注单位文件权限-代表文 ...
- 远程方法调用(RMI)原理与示例
RMI介绍 远程方法调用(RMI)顾名思义是一台机器上的程序调用另一台机器上的方法.这样可以大致知道RMI是用来干什么的,但是这种理解还不太确切.RMI是Java支撑分布式系统的基石,例如著名的EJB ...
- 将excel导入mysql(使用navicat)
excel: 注: 1.mysql里建立一张跟excel一样的表结构的表(包含id) 2.excel最好没有任何格式,只是纯值,不然会出现导入不了的错误 ----------------------- ...
- TOGAF培训讲义
我作为国内首先进行TOGAF研究和实践的架构师之一,曾在中国软件技术大会和中国软件工程大会做过TOGAF相关的主题演讲,并在多家大中型企业做过企 业架构内训.这个是我在给需要企业架构的企业做内训时的讲 ...
- php + Redis 写的类似于新浪微博的feed系统
最近接了一个feed系统的外包,类似于微博那种!客户端是ios和android,服务器用的php,数据库用的是redis.分享下服务器和数据库部分的功能!希望对大家有帮助. 关于redis的介绍,大家 ...
- sqlite3存储格式
本篇介绍sqlite3数据库文件的存储格式.通过阅读源读源代码可以知道sqlite的设计思想.一个sqlite数据库文件对应着一个数据库.sqlite将数据库文件划分大小一致的存储(以区分内存)页面, ...
- 利用name或id属性设置页面跳转的锚点
理论准备 网页中的链接按照链接路径的不同,可以分为3种类型,分别是内部类型.锚点链接和外部链接: 按照使用对象的不同,网页中的链接又分为文本超链接,图像超链接,E-ma ...
- Python入门笔记(18):Python函数(1):基础部分
一.什么是函数.方法.过程 推荐阅读:http://www.cnblogs.com/snandy/archive/2011/08/29/2153871.html 一般程序设计语言包含两种基本的抽象:过 ...