2016-07-12 3 views
0

У меня есть функция, которая вызывается javascript с JavascriptCore. Теперь внутри этой функции я должен снова оценить javascript при определенном условии. Это должно вызывать ту же функцию.Возможна ли быстрая рекурсивная функция вызова с помощью javascriptcore?

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

Я мог бы решить эту проблему, избегая наличия функций как свойств. Для этого я поместил функциональность в дополнительный класс и использовал JSExport.

Одним из примеров того, как это можно сделать с помощью JSExport, может быть found here.