I'm trying to use native Swift code in javacript that runs in a JSContext.
For example I have this class implemented in Swift:
class Greeter: NSObject {
public func greet() -> String {
return "Hello World!"
}
public func greetMe(_ name: String) -> String {
return "Hello, " + name + "!"
}
}
Then I use a JSContext to run a javascript code:
let context = JSContext()!
context.setObject(Greeter.self, forKeyedSubscript: "Greeter" as (NSCopying & NSObjectProtocol))
// Try my native functions:
let jsv1 = context.evaluateScript("Greeter.greet()")!
let jsv2 = context.evaluateScript("Greeter.greetMe(\"Jon Arbuckle\")")!
print("Greeter.greet() = \(jsv1)") // prints Greeter.greet() = undefined
print("Greeter.greatMe(\"Jon Arbuckle\") = \(jsv2)") // prints Greeter.greetMe("Jon Arbuckle") = undefined
Couldn't figure out what I'm doing wrong.