【发布时间】:2012-10-02 16:29:10
【问题描述】:
使用 JavaScriptCore,如果我在 Objective-C 中有这样的 NSString:
NSString *objcName = @"Kristof";
还有一个名为 jsContextRef 的 JSGlobalContextRef 上下文。
如何将 objcName 的 Objective-C 值转移到 jsContextRef 中的命名 JavaScript 变量中?我的想法是:
JSStringRef jsNameRef = JSStringCreateWithUTF8CString([objcName UTF8String]);
JSValueRef jsValueRef = JSValueMakeString(jsContextRef, jsNameRef);
假设变量名是“jsName”。我需要再打几个电话(甚至可能打一个电话),比如:
// This part is pseudo-code for which I would like to have proper code:
JSValueStoreInVarWithName(jsContextRef,"jsName",jsValueRef);
这样最终这个 JavaScript 在 Objective-C 中调用时会正确计算:
NSString *lJavaScriptScript = @"var jsUppercaseName = jsName.toUpperCase();";
JSStringRef scriptJS = JSStringCreateWithUTF8CString([lJavaScriptScript UTF8String]);
JSValueRef exception = NULL;
JSValueRef result = JSEvaluateScript(jsContextRef, scriptJS, NULL, NULL, 0, &exception);
【问题讨论】:
标签: objective-c ios cocoa-touch javascriptcore