我正在尝试通过NativeScript运行时运行javascript。使用C API,就像在NativeScript example中一样,但是我想使用Objective-C API。我无法将运行时的JSGlobalContextRef
转换为JSContext*
。我首先尝试过桥接。
JSGlobalContextRef ref = runtime.globalContext;
JSContext* context = (__bridge_transfer JSContext*)ref;
[context evaluateScript:@"var x = 1;"];
但似乎没有类型被桥接。它在最后一行失败并显示EXC_BAD_ACCESS
。然后我找到contextWithJSGlobalContextRef:
方法并尝试:
JSGlobalContextRef ref = runtime.globalContext;
JSContext* context = [JSContext contextWithJSGlobalContextRef:ref];
[context evaluateScript:@"var x = 1;"];
这次它在EXC_BAD_ACCESS
的第二行失败了。从JSContext*
获取JSGlobalContextRef
的正确方法是什么?