JSpatch 二

##### 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

})

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容