使用javascriptcore可以快速执行递归函数调用吗?

时间:2016-07-12 18:00:07

标签: swift recursion swift2 javascriptcore

我有一个javascript用JavascriptCore调用的函数。 现在在该函数内部我必须在特定条件下再次评估javascript。这应该调用相同的函数。

let My_JS_Function: @convention(block) ( String, String, String ) -> ( ) = {
    thing_1, thing_2, thing_3
    in
    let my_Condition = true
    if my_Condition {        
      let c = JSContext()
      // compiling error: "Variable used within its own initial value"
      Context.setObject(unsafeBitCast(My_JS_Function, AnyObject.self), forKeyedSubscript: "My_JS_Function")
      c.evaluateScript("My_JS_Function("value 1","value 2","value 3");")
    }
  }

现在XCode告诉我:

  

在其自己的初始值

中使用的变量

有人知道那里有解决这个问题的方法吗? 也许是一种将 My_JS_Function 写为函数的方法,而不是像这里一样变量?

1 个答案:

答案 0 :(得分:0)

我可以通过避免将函数作为属性来解决问题。 因此,我将功能放在一个额外的类中并使用了JSExport。

使用JSExport可以完成的一个示例可以是found here