我正在使用 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
时,一切都按预期工作。问题是什么?我们该如何解决?
这是你可以做到的:
context[@"callBlock"] = ^(JSValue *block)
{
[closure callWithArguments:nil];
};
在 JS 中
callBlock(a, function(a){closure(a);})
关于javascript - 在 JSConext 的方法中传递 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41168577/
欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) | Powered by Discuz! X3.4 |