我正在使用JSContext并创建如下函数
context[@"callOriginalMethod"] = ^(NSArray* arr, closureBlock block)
{
block(arr);
};
和ClosureBlock定义为
typedef void (^closureBlock)(NSArray*);
但是,当我从JS调用
callOriginalMethod
时,出现此错误:TypeError: callOriginalMethod is not a function. (In 'callOriginalMethod(a, globalCl)', 'callOriginalMethod' is an instance of NSBlock)
当我从
closureBlock block
中删除callOriginalMethod
时,一切正常。问题出在哪里,我们该如何解决? 最佳答案
这是您可以执行的操作:
context[@"callBlock"] = ^(JSValue *block)
{
[closure callWithArguments:nil];
};
和在JS中
callBlock(a, function(a){closure(a);})
关于javascript - 在JSConext方法中传递块,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41168577/