我正在使用 JavaScriptCore 来评估我的应用程序中的一些简单脚本。我正在创建一个全局对象并在其上定义一些属性,如下所示:
JSContext *context = [[JSContext alloc] init];
JSValue *globalObject = [context globalObject];
[globalObject setValue:fields forProperty:@"fields"];
...
这样脚本就可以访问其中的值fields
等等。我希望脚本能够使用一个名为 的函数lookup
,并且我已经有了这个函数的 Objective-C 实现。
如何向全局对象添加一个属性,该对象是一个回调我的 Objective-C 方法的函数?我看到有一个名为 的函数JSObjectMakeFunctionWithCallback
,但它使用像 s 这样的低级 C 结构JSObjectRef
并采用 C 函数,而不是 Objective-C 块,所以我无法self
在实现内部使用。