2016-07-12 9 views
0

Ich habe eine Funktion, die von Javascript mit JavascriptCore aufgerufen wird. Jetzt innerhalb dieser Funktion muss ich ein Javascript erneut unter einer bestimmten Bedingung bewerten. Dies sollte die gleiche Funktion aufrufen.Möglich in swift, einen rekursiven Funktionsaufruf mit Javascriptcore zu tun?

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");") 
    } 
    } 

Jetzt XCode sagt mir:

Variable innerhalb des eigenen Anfangswert verwendet

Weiß jemand wheather gibt es einen Weg, wie dieses Problem zu lösen? Vielleicht eine Möglichkeit, die My_JS_Function als eine Funktion zu schreiben und nicht wie hier als Variable?

Antwort

0

Ich könnte das Problem mit der Vermeidung von Funktionen als Eigenschaften beheben. Daher habe ich die Funktionalität in eine extra Klasse und verwendet JSExport.

Ein Beispiel dafür, wie es mit JSExport gemacht werden kann, ist found here.

Verwandte Themen