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一些容易犯错的地方的更多相关文章

  1. 关于C#编程中引用与值类型赋值的一些容易犯错的地方

    值类型与引用类型的区别在于:值类型在赋值的时候是拷贝值,引用类型在赋值的时候的拷贝引用.记住这一个原则,我们再来分析一些具体情况: PointStruct pt1 = ,); PointStruct ...

  2. 使用vue-cli脚手架安装的eslint 容易犯错的地方

    1. 函数名字与括号之间要有空格. 2. 不要使用双引号 3. 不要有多月的空行 4.函数参数的逗号后要有空格 5.每个结束语句以后不用加“分号”

  3. javascript sort方法容易犯错的地方

    sort方法用来对数组排序非常方便.但是sort(func)这个func参数的构造却很容易混淆. sort判断func的返回值是判断正负,而不是ture和false.所以务必保证返回值要么负数要么正数 ...

  4. caffe实现focal loss层的一些理解和对实现一个layer层易犯错的地方的总结

    首先要在caffe.proto中的LayerParameter中增加一行optional FocalLossParameter focal_loss_param = 205;,然后再单独在caffe. ...

  5. 朱晔和你聊Spring系列S1E6:容易犯错的Spring AOP

    阅读PDF版本 标题有点标题党了,这里说的容易犯错不是Spring AOP的错,是指使用的时候容易犯错.本文会以一些例子来展开讨论AOP的使用以及使用过程中容易出错的点. 几句话说清楚AOP 有关必要 ...

  6. Makefileeasy犯错的语法

    1.引言 近期学习android的Build系统,接触最多的自然就是Makefile语法.发现非常多easy出错的地方,不避开这些错误语法没法真正了解Makefile的内涵.以下就介绍遇到的一些让人困 ...

  7. 致DBA:为什么你经常犯错,是因为你做的功课不够

    专职做DBA已经6年多的事件了,看同行.同事犯了太多的错误,自己也犯了非常多的错误.一路走来,感触非常深.然而绝大多数的错误其实都是很低级的错误.有的是因为不了解某个引擎的特性导致:有的是因为对线上环 ...

  8. vue router引入路由与路由配置容易犯错的地方与常见的报错与处理报错

    首先npm安装vue-router插件,就不说了其次: 先看下我本地的目录结构吧 第一步:在src目录下新建一个专门存放router的index.js文件里面的内容为: import Vue from ...

  9. 不知道哪里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 ...

随机推荐

  1. Android manifest之系统自带的permission

    Android manifest之系统自带的permission 本文描述Android系统自带的permission.点击查看:“关于permission的原始定义和说明”.点击查看:“Androi ...

  2. Unity3D 敌人AI 和 动画( Animator )系统的实例讲解

    在这个实例中,我们要做一些敌人AI的简单实现,其中自动跟随和动画是重点,我们要达到的目标如下: 1.敌人能够自动跟随主角 2.敌人模型一共有四个动作:Idle(空闲) Run(奔跑) Attack(攻 ...

  3. [mysql]brew 安装 配置 操作 mysql(中文问题)

    mac 下卸载mysqldmg mac下mysql的DMG格式安装内有安装文件,却没有卸载文件--很郁闷的事. 网上搜了一下,发现给的方法原来得手动去删. 很多文章记述要删的文件不完整,后来在stac ...

  4. 用vuejs写了一个酷狗的webApp

    这几天在学习vueJS,学了半个月,觉得是不是该写点什么呢?于是 .脑子一抽,仿了一个酷狗的webapp. 项目截图: 由于是单页应用,切换路由时音乐不会停止,算是一个小亮点吧. 技术栈: vuejs ...

  5. spring AspectJ的Execution表达式

    Aspectj切入点语法定义 在使用spring框架配置AOP的时候,不管是通过XML配置文件还是注解的方式都需要定义pointcut"切入点" 例如定义切入点表达式  execu ...

  6. 如何彻底的卸载和删除Windows service

    最近遇到很头疼的问题,安装到服务器的Windows Service卸载的时候出错了,结果在服务列表中就一直驻留,并且系统进程一直在运行,怎么都杀不掉. 最后终于找到办法了: 1.常规做法,批处理命令卸 ...

  7. angularJs自定义服务

    在AngularJS中,系统内置的服务都是以$开头,所以我们的自定义服务尽量避免以$开头.自定义服务的方式有如下几种: 使用Module的provider方法 使用Module的factory方法 使 ...

  8. mysql 随机字符的产生方法

    需求:需要插入随机数据,长度为6位,包含数字和大写字母. 一般来说我们会写类似如下的存储过程片断: ) default 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLM ...

  9. ChartDirector应用笔记(三)

    前言 继上篇文章(Simple bar chart)推出之后,本篇文章继续ChartDirector的使用.在这篇Blog中,博主实现的是soft lighting bar.soft lighting ...

  10. Orleans 之 监控工具的使用

    这一节,我们来说说orleans 中的几个实用工具,OrleansHost.OrleansCounterControl.OrleansManager.ClientGenerator. 1.Orlean ...