我知道我必须对swift做错了......新的API声明了一对方法......
class func openParentApplication(_ userInfo: [NSObject : AnyObject]!,
reply reply: (([NSObject : AnyObject]!,
NSError!) -> Void)!) -> Bool
可以在手表套件扩展中使用...和
func application(application: UIApplication!, handleWatchKitExtensionRequest userInfo: [NSObject : AnyObject]!, reply: (([NSObject : AnyObject]!) -> Void)!) {
可以在父应用程序中用来处理请求....
我知道我做错了,可能是用swift,但是回复对象应该是我可以将信息发送回扩展的地方,但我无法弄清楚如何将值设置到回复对象/字典中handlewatchkitextentionrequest方法...我知道它只是我不理解swift语法,但我尝试过的所有内容都失败了...我如何设置值/定义这个字典?我试过创建一个字典并指定它来回复,nope,试图访问它的元素没有骰子......我知道这一定很简单,但我只是没有看到它。
答案 0 :(得分:4)
Watchkit扩展:
// Call the parent application from Apple Watch
// values to pass
let parentValues = [
"value1" : "Test 1",
"value2" : "Test 2"
]
WKInterfaceController.openParentApplication(parentValues, reply: { (replyValues, error) -> Void in
println(replyValues["retVal1"])
println(replyVaiues["retVal2"])
})
iOS App:
// in AppDelegate.swift
func application(application: UIApplication!, handleWatchKitExtensionRequest userInfo: [NSObject : AnyObject]!, reply: (([NSObject : AnyObject]!) -> Void)!) {
// retrieved parameters from Apple Watch
println(userInfo["value1"])
println(userInfo["value2"])
// pass back values to Apple Watch
var retValues = Dictionary<String,String>()
retValues["retVal1"] = "return Test 1"
retValues["retVal2"] = "return Test 2"
reply(retValues)
}
答案 1 :(得分:1)
func application(application: UIApplication!, handleWatchKitExtensionRequest userInfo: [NSObject : AnyObject]!, reply: (([NSObject : AnyObject]!) -> Void)!) {
您通过以下方式发回:
reply(["x":"y"])