jjzjj

swift - handleWatchKitExtentionRequest ...如何访问回复元素以将值返回给 watchkit 扩展?

coder 2023-09-13 原文

我知道我肯定在 swift 上做错了……新的 API 声明了一对方法……

class func openParentApplication(_ userInfo: [NSObject : AnyObject]!,
                       reply reply: (([NSObject : AnyObject]!,
                                      NSError!) -> Void)!) -> Bool

可以在watch kit扩展中使用...和

   func application(application: UIApplication!, handleWatchKitExtensionRequest userInfo: [NSObject : AnyObject]!, reply: (([NSObject : AnyObject]!) -> Void)!) {

可以在父应用程序中使用它来处理请求....

我知道我做错了什么,可能是 swift,但回复对象应该是我可以将信息发送回扩展的地方,但我不知道如何将值设置到回复对象/字典中handlewatchkitextentionrequest 方法...我知道只有我不理解 swift 语法,但我尝试的一切都失败了...我如何输入值/定义这本字典?我已经尝试创建一个字典并将其分配给回复,不,尝试访问它的元素没有骰子......我知道这一定很简单,但我只是没有看到它。

最佳答案

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 应用:

// 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)
}

关于swift - handleWatchKitExtentionRequest ...如何访问回复元素以将值返回给 watchkit 扩展?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27475879/

有关swift - handleWatchKitExtentionRequest ...如何访问回复元素以将值返回给 watchkit 扩展?的更多相关文章

随机推荐