我有一个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 写为函数的方法,而不是像这里一样变量?
答案 0 :(得分:0)
我可以通过避免将函数作为属性来解决问题。 因此,我将功能放在一个额外的类中并使用了JSExport。
使用JSExport可以完成的一个示例可以是found here。