我正在使用 JSContext 并创建如下所示的函数
context[@"callOriginalMethod"] = ^(NSArray* arr, closureBlock block)
{
block(arr);
};
closureBlock 定义为
typedef void (^closureBlock)(NSArray*);
然而,当我从 JS 调用 callOriginalMethod 时,我得到这个错误:
TypeError:callOriginalMethod 不是函数。 (在'callOriginalMethod(a, globalCl)'中,'callOriginalMethod'是NSBlock的一个实例)
当我从 callOriginalMethod 中删除 closureBlock block 时,一切都按预期工作。问题是什么?我们该如何解决?
Best Answer-推荐答案 strong>
这是你可以做到的:
context[@"callBlock"] = ^(JSValue *block)
{
[closure callWithArguments:nil];
};
在 JS 中
callBlock(a, function(a){closure(a);})
关于javascript - 在 JSConext 的方法中传递 block ,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/41168577/
|