Swift JavaScriptCore不能处理大文件?

时间:2018-01-28 14:14:45

标签: javascript ios swift xcode javascriptcore

https://github.com/gg2001/monero/blob/master/monero/NewWallet.js

我有一个非常大的6000行的js文件,JavaScript核心似乎无法检索变量值,而在任何Web浏览器中运行相同的文件对我来说都很好。当我尝试检索变量的值时,它显示为未定义,但是当我在浏览器中使用js控制台时,它显示正常。我猜测这是由于文件的大小,因为当我把

var helloWorld = "Hello World";

在js文件的前面,这个快速代码可以检索它

func helloWorld() { if let variableHelloWorld = self.jsContext.objectForKeyedSubscript("helloWorld") { print(variableHelloWorld.toString()) } }

但是当我把它放在最后它不能。

1 个答案:

答案 0 :(得分:1)

通常这表示解析错误。尝试在调用self.jsContext之前向objectForKeyedSubscript()添加错误处理程序,看看它是否输出任何有见地的内容。

self.jsContext.exceptionHandler = { context, exception in
    print("JS Error: \(exception?.description ?? "unknown error")")
}

尽管您的JS代码可能在浏览器控制台中有效,但iOS Safari不支持与新浏览器一样多的Javascript功能。

我确实在JS源代码中看到了一行,只是以分号开头(紧接着是(function)。我想知道解析器是否可能会抱怨没有语句的空行..?但也许没什么。