JSpatch 二

2016-09-19  本文已影响0人  AlanQingHua

##### 1.NSArray / NSString / NSDictionary 不会自动转成对应的JS类型,像普通 NSObject 一样使用它们

Important annotations that needs attention:

//OC

implementation JPObject

+(NSArray *)data

{

return @[[NSMutableString stringWithString:@"JS"]];

}

+(NSMutableDictionary *)dict{

return [[NSMutableDictionary alloc] init];

}

@end

//js

require('JPObject')

var ocStr = JPObject.data().objectAtIndex(0)

ocStr.appendString("Patch")

var dict = JPObject.dict()

##### 2 dic如果要把 NSArray / NSString / NSDictionary 转为对应的 JS 类型,使用 .toJS() 接口:t.setObject_forKey(ocStr, 'name')

// JS

var data = require('JPObject').data().toJS()

//data instanceof Array === true

data.push("Patch")

var dict = JPObject.dict()

dict.setObject_forKey(data.join(''), 'name')

dict = dict.toJS()

console.log(dict['name'])    //output: JSPatch

console.log(dict.objectForKey('name')) //output: JSPatch

#####3 使用 dispatch_after() dispatch_async_main() dispatch_sync_main() dispatch_async_global_queue() 接口调用GCD方法:

dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{

// do something

});

dispatch_async(dispatch_get_main_queue(), ^{

// do something

});

//js

dispatch_after(1.0, function(){

// do something

})

dispatch_async_main(function(){

// do something

})

dispatch_sync_main(function(){

// do something

})

dispatch_async_global_queue(function(){

// do something

})

上一篇 下一篇

猜你喜欢

热点阅读