【问题标题】:iOS 8 JavaScriptCore: Where do you place your JavaScript files at?iOS 8 JavaScriptCore:您将 JavaScript 文件放在哪里?
【发布时间】:2014-11-09 23:28:33
【问题描述】:

如何将 JS 文件添加到主目录,以使 's' 不返回 'nil'。谢谢。

func analyzeText(text: String) {

    let homeDir = NSHomeDirectory()

    var err: NSError? = NSError()

    let s = String(contentsOfFile: homeDir + "/text.js", encoding: NSUTF8StringEncoding, error: &err)

    println(s)

    var context = JSContext(virtualMachine: JSVirtualMachine())

    context.evaluateScript(s)

    let analyzeText = context.objectForKeyedSubscript("analyzeText")

    let analyzeTextVal = analyzeText.callWithArguments([text])

    println(analyzeTextVal)

}

【问题讨论】:

    标签: javascript ios swift javascriptcore


    【解决方案1】:

    以下代码适用于我:

    func analyzeText(scriptName: String) {
        var ext = scriptName.pathExtension
        var fileName = scriptName.substringToIndex(
            advance(scriptName.startIndex, 
                    scriptName.utf16Count - ext.utf16Count - 1))
    
        if fileExtension.utf16Count == 0 {
            fileName = scriptName
            ext = "js"
        }
    
        let url = NSBundle.mainBundle()
            .URLForResource(fileName, withExtension: ext)
        let scriptCode = String(contentsOfURL: url!, 
                                encoding: NSUTF8StringEncoding, 
                                error: nil)!
    
        var context = JSContext(virtualMachine: JSVirtualMachine())
        context.evaluateScript(scriptCode)
        /* ... */
    }
    

    要评估名为 text.js 的文件,请执行以下操作:

    analyzeText("text")

    确保已将text.js 添加到 Xcode 项目中,如有必要,将文件复制到目标位置

    【讨论】:

    • 如果有许多javascript文件并且它们具有相互依赖关系怎么办:它们可以按依赖关系的相反顺序依次加载并期望正确解析吗?
    猜你喜欢
    • 1970-01-01
    • 2017-05-14
    • 2011-03-26
    • 1970-01-01
    • 2012-04-26
    • 1970-01-01
    • 2020-12-07
    • 1970-01-01
    • 2014-04-19
    相关资源
    最近更新 更多