我正在使用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
时,一切都按预期工作。问题是什么?我们如何解决这个问题?
答案 0 :(得分:3)
这是你可以做到的:
context[@"callBlock"] = ^(JSValue *block)
{
[closure callWithArguments:nil];
};
和JS
callBlock(a, function(a){closure(a);})