ios - 没有数组从父应用程序发送到 Watch 应用程序

标签 ios swift watchkit apple-watch

我正在尝试从父应用程序接收一组对象(从应用程序内的 Parse 检索)以显示在 watch 应用程序中。我一直在尝试一些不同的事情,但没有成功。

这是我在扩展中的代码:

override func awakeWithContext(context: AnyObject?) {
    super.awakeWithContext(context)

    var parkPassed = context as! String
    openParentAppWithPark(parkPassed)        
}

private func openParentAppWithPark(park: String) {
    WKInterfaceController.openParentApplication(["request": park], reply: { (reply, error) -> Void in
        println(reply)
    })
}

父应用中的代码:

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

        if let userInfo = userInfo, request = userInfo["request"] as? NSArray {
            if request == "Park 1" {
                DataManager.sharedInstance.loadRides("Park 1")
            } else if request == "Park 2" {
                DataManager.sharedInstance.loadRides("Park 2")
            } else if request == "Park 3" {
                DataManager.sharedInstance.loadRides("Park 3")
            } else {
               DataManager.sharedInstance.loadRides("Park 4")
            }

            let rides = DataManager.sharedInstance.rideArray
            println("Rides: \(rides)")

            reply(["rideData": rides])
            return
        }
        reply([:])
}

println 我总是在第一次尝试加载时返回 nil,然后每隔一次返回 [:]。我认为这是因为请求在应用程序有时间从 Parse 加载数据之前超时?此外,从未调用应该打印“Test”的 println

最佳答案

在扩展中,您通过 request 键将 String (park) 传递给父应用程序,但在父应用程序中应用程序,您正在测试 userInfo["request"] 是否为 NSArray。您应该测试 String,如:

if let userInfo = userInfo, request = userInfo["request"] as? String {

关于ios - 没有数组从父应用程序发送到 Watch 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31707109/

相关文章:

ios - 如何让 uitableViewCell 同时处理点击和长按?

ios - Pod文件在一段时间后不断消失

ios - 错误 ITMS-90363 : "Invalid Info.plist key. The key ' CFBundleIcons~ipad' in bundle MyApp. 应用程序……

iOS - Facebook POP : slide tableview cell to bottom right corner

ios - iOS 13 "canOpenURL: failed for URL: “fbauth2:///” 的 Facebook 登录套件“

ios - 无法转换类型 Any?要输入 AnyObject?从 swift 3 转换为 swift 4 时

ios - 苹果 watch : Storyboard localization will not work

iphone - 有 WatchKit 传感器 API 吗?

ios - 是否 openParentApplication :reply require App Groups capability to be enabled?

ios - 如何将填充添加到搜索栏 swift ios