JSPatch使用总结

项目中集成了JSPatch,用到过几次,现在就把OC代码转JS代码的一些注意点写出来,也是为了让自己以后用到的时候不至于再去看官方文档了

首先是语法,OC是用 [ ]来调用方法的,JS是通过()来调用的,写起来感觉跟swift差不多,多写几个体会一下就明白了

1、方法名或者属性带有 “ _ ” 的,转为JS后要变成双下划线

// OC
@property (nonatomic,copy) NSString *chap_id;

// JS
var chapID = self.chap_id  // get
self.setChap__id = "1234" // set 注意了设值时属性的首字母要大写,并且在前面加上‘set’

// 同样的方法名也是一样的,只要单下划线变成双下划线就可以
// OC
[self.icon sd_setImageWithURL:[NSURL URLWithString:@"xxxxxxx"]];

// JS 
self.icon().sd__setImageWithURL(NSURL.URLWithString("xxxxxxx"));

2、成员变量

// 一般来讲成员变量的命名规则是以 ‘_’ 开头的
// OC 成员变量
{
    int dataCount;
    NSMutableArray *_dataArr;
}

// JS
// get
var data = self.valueForKey("_dataArr")
var count1 = self.valueForKey("dataCount")

// 取数组里对应下标的数据
var model = data.objectAtIndex(count1);

// 成员变量用完后记得要再把值重新设置回去
// set
self.setValue_forKey(data, "_dataArr")
self.setValue_forKey(count1, "dataCount")

3、字典

// 那userDefaults来说吧
// OC
[[NSUserDefaults standardUserDefaults]setObject:@"" forKey:@"user_id"];

// JS
NSUserDefaults.standardUserDefaults().setObject_forKey("", "user_id")

这是用过几次之后总结的可以写的,其他的像block,GCD这样的直接照着官方文档搬就可以了我在这里不再赘述,需要提醒的是,不要依赖JSPatch官网的代码转换工具和语法检查,有时候确实好用,但是有时候错误会很难找,比方说括号,尤其是嵌套层级很深的,转换出来就会有问题,遇到这种的就只能靠眼力去找了。
另:此文章会一直更新

你可能感兴趣的:(JSPatch使用总结)