可以在 swift 中使用 javascriptcore 进行递归函数调用吗?
Possible in swift to do a recursive function call with 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告诉我:
Variable used within its own initial value
有人知道有什么办法可以解决这个问题吗?
也许有一种方法可以将 My_JS_Function 写成一个函数,而不是像这里那样写成一个变量?
我可以通过避免将函数作为属性来解决这个问题。
因此,我将功能放在一个额外的 class 中并使用了 JSExport。
一个关于如何使用 JSExport 完成的示例可以是 found here。
我有一个由 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告诉我:
Variable used within its own initial value
有人知道有什么办法可以解决这个问题吗? 也许有一种方法可以将 My_JS_Function 写成一个函数,而不是像这里那样写成一个变量?
我可以通过避免将函数作为属性来解决这个问题。 因此,我将功能放在一个额外的 class 中并使用了 JSExport。
一个关于如何使用 JSExport 完成的示例可以是 found here。