【发布时间】:2018-08-17 12:28:43
【问题描述】:
我正在尝试在运行在 JSContext 中的 javacript 中使用本机 Swift 代码。
例如,我在 Swift 中实现了这个类:
class Greeter: NSObject {
public func greet() -> String {
return "Hello World!"
}
public func greetMe(_ name: String) -> String {
return "Hello, " + name + "!"
}
}
然后我使用一个 JSContext 来运行一段 javascript 代码:
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
无法弄清楚我做错了什么。
【问题讨论】:
标签: javascript swift javascriptcore