在使用block()方法对JavaScript中的Func进行包装时,block(param1,param2)有两个参数,第1个参数设置func中的参数类型,如果有多个参数,使用逗号分割;第2个参数为func函数体。
注意:在block()包装的func中不可以使用self指针,如果需要使用self,需要在block外进行临时变量的转换,示例如下:
defineClass("ViewController", {
viewDidAppear: function(animated) {
//run 方法中需要传入一个block
var slf = self
self.run(block("NSString*",
function(str){
console.log(str)
slf.log(str)
}))
}
})
在JavaScript中分别使用__weak()与__strong来声明弱引用与强引用对象,例如:
var slf = __weak(self)
var stgSef = __strong(self)
5.关于GCD与枚举
在JSPatch中,可以使用如下JavaScript代码来调用GCD方法:
//阻塞当前线程一定时间
dispatch_after(1.0, function(){
})
//为主线程添加异步任务
dispatch_async_main(function(){
})
//为主线程添加同步任务
dispatch_sync_main(function(){
})
//向全局队列中添加任务
dispatch_async_global_queue(function(){
})
JSPatch中不可以直接使用Objective-C中定义的枚举,但是可以用其枚举的真实值进行传递。例如:
//UIControlEventTouchUpInside的值是1<<6
btn.addTarget_action_forControlEvents(self, "handleBtn", 1<<6);
注:相关教程知识阅读请移步到IOS开发频道。










