Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c WatchConnectivity框架:WKSession用于维护我请求监视的队列_Objective C_Ios9_Apple Watch_Watchos 2_Watchconnectivity - Fatal编程技术网

Objective c WatchConnectivity框架:WKSession用于维护我请求监视的队列

Objective c WatchConnectivity框架:WKSession用于维护我请求监视的队列,objective-c,ios9,apple-watch,watchos-2,watchconnectivity,Objective C,Ios9,Apple Watch,Watchos 2,Watchconnectivity,我已经创建了一个应用程序,它正在发送数据以监视显示。 当手表屏幕处于活动状态时,它会完美地发送数据,但当手表处于休眠状态时,则会发生一个错误,即设备未处于活动状态 我的问题是,当手表处于活动状态时,它将如何从我的iPhone获取通过WKSession sendMessage方法发送的数据?如果手表屏幕关闭,iPhone上的呼叫sendMessage将无法工作。您只能在手表屏幕打开时实时发送数据。这与将sendMessage从手表发送到iPhone时不同(iPhone屏幕可以关闭)。这是我从iPh

我已经创建了一个应用程序,它正在发送数据以监视显示。 当手表屏幕处于活动状态时,它会完美地发送数据,但当手表处于休眠状态时,则会发生一个错误,即设备未处于活动状态


我的问题是,当手表处于活动状态时,它将如何从我的iPhone获取通过WKSession sendMessage方法发送的数据?

如果手表屏幕关闭,iPhone上的呼叫sendMessage将无法工作。您只能在手表屏幕打开时实时发送数据。这与将sendMessage从手表发送到iPhone时不同(iPhone屏幕可以关闭)。这是我从iPhone代码调用sendMessage时使用的代码块:

// Send messages to any paired apple watch.
func tryWatchSendMessage(message: [String : AnyObject]) {
    if self.session != nil && self.session.paired && self.session.watchAppInstalled {
        self.session.sendMessage(message, replyHandler: nil) { (error) -> Void in
            // If the message failed to send, queue it up for future transfer
            self.session.transferUserInfo(message)
        }
    }
}

然后,如果apple watch应用程序通过sendMessage或transferUserInfo获取数据,我会将其设置为具有相同的处理程序。

对不起,你能重新表述你的问题吗?我不明白你在问什么。我已经做了这些事情,但是,如果手表屏幕关闭,我从iPhone上发送了一些要观看的内容,那么当手表屏幕打开时,我发送的数据将丢失或排队等待处理。如果屏幕关闭,iPhone调用sendMessage,则呼叫将失败,数据将不会发送到apple Watch。在本例中,上面的代码块通过使用相同的数据调用transferUserInfo来处理此问题。这将在监视屏幕重新打开时对要处理的数据进行排队。目前,您需要同时实现session:didReceiveMessage(用于sendMessage成功时)和session:didReceiveUserInfo(用于sendMessage失败和transferUserInfo成功时)。