14

我正在为我的 Apple WatchOS2 应用程序开发概览视图。我目前还没有完全理解稳定 WatchConnectivity 连接的先决条件。我有一个奇怪的情况,在模拟器中我的 ComplicationController 可以成功发送消息请求。当我试图看一眼时,sendMessage 请求失败了:

Error Domain=WCErrorDomain Code=7007 
"WatchConnectivity session on paired device is not reachable." 
UserInfo={NSLocalizedDescription=WatchConnectivity session 
on paired device is not reachable.

我不得不承认,我没有在模拟器上启动我的应用程序。但是为什么 ComplicationController 可以通信而 WatchController 不能。我在互联网上没有找到关于错误 7007 的解释。

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

    WCSession.defaultSession().sendMessage(["request": "getGlancesImages" ], replyHandler: {
        (result) -> Void in
            self.processGetGlancesImages(result)
        }, errorHandler: { NSLog("WatchGlanceController2. \($0.description)") } )
}

我目前正在使用 WatchOS2 Beta 5 和 iOS 9 Beta 5 进行开发。我完全清楚,这是一个测试版,但这是发布前的最后一个测试版。

4

2 回答 2

9

确保调试器仅附加到 Watch 应用程序,并且 iPhone 应用程序直接从模拟器运行。

因此,运行 iPhone 应用程序以获取最新代码,然后停止执行。接下来,运行 Watch 应用程序并打开 iPhone 模拟器并打开 iPhone 应用程序。两个应用程序启动后(调试器仅附加到 Watch 应用程序)sendMessage:replyHandler:errorHandler:不应调用错误回调并且消息应成功发送。

于 2015-09-23T08:50:22.613 回答
0

尝试使用

WCSession.defaultSession().reachable

迅速检查它是否可以到达。

目标 C [WCSession.defaultSession] isReachable]

如果返回,请false/NO选择Debug -> Attach to Process,然后找到要附加的应用程序,然后选择它,应该可以工作。

于 2016-04-07T12:02:08.393 回答