Objective c 将JSGlobalContextRef转换为JSContext

Objective c 将JSGlobalContextRef转换为JSContext,objective-c,javascriptcore,nativescript,Objective C,Javascriptcore,Nativescript,我正在尝试通过NativeScript运行时运行javascript。使用C API,就像在中一样,效果很好,但我想使用Objective-C API。我无法将运行时的JSGlobalContextRef转换为JSContext*。我第一次尝试桥接 JSGlobalContextRef ref = runtime.globalContext; JSContext* context = (__bridge_transfer JSContext*)ref; [context evaluateScri

我正在尝试通过NativeScript运行时运行javascript。使用C API,就像在中一样,效果很好,但我想使用Objective-C API。我无法将运行时的JSGlobalContextRef转换为JSContext*。我第一次尝试桥接

JSGlobalContextRef ref = runtime.globalContext;
JSContext* context = (__bridge_transfer JSContext*)ref;
[context evaluateScript:@"var x = 1;"];
但这些类型似乎没有桥接。最后一行的EXC_BAD_访问失败。然后我找到了contextWithJSGlobalContextRef:方法并尝试:

JSGlobalContextRef ref = runtime.globalContext;
JSContext* context = [JSContext contextWithJSGlobalContextRef:ref];
[context evaluateScript:@"var x = 1;"];

这一次,它在第二行失败,EXC\u访问错误。从JSGlobalContextRef获取JSContext*的正确方法是什么?

我认为contextWithJSGlobalContextRef不起作用,因为我们构建的JavaScriptCore没有Objective-C API。所以NativeScript使用的JavaScriptCore与iOS中包含的JavaScriptCore不同?也许我用错了框架?Cmd单击JSGlobalContextRef,我将看到Apple框架中的JSBase标头是的,您可以在此处看到它:。这只是Xcode的导航。如果在JSEvaluateScript上放置一个符号断点,您将看到BlankApp`JSEvaluateScript。