我一直在阅读有关 WatchKit 连接框架的文档,试图弄清楚我是否可以将所有密集处理需求委托给我的父 iOS 应用程序。所有代码都已经存在于父应用程序中,用于执行所需的处理,这样做似乎效率更高,而不是 Apple Watch 应用程序复制代码并自行尝试。
我的问题是,如果 iOS 设备上的应用程序在手表套件应用程序发出请求时未激活,这是否可能?它会只是排队请求直到它下一次打开,还是可以配置为立即处理它?我希望手表总能得到某种形式的响应或请求超时。
更新:
我发现我的特定问题与在执行单独的请求后从后台线程调用回复处理程序有关。当我这样做时,我没有得到 iOS 设备对 Apple Watch 的回复。这最初让我认为 iOS 设备在激活之前会忽略这些请求。
我的解决方案是执行以下操作,以便始终从主线程调用回复处理程序。这似乎是我必须在文档中遗漏的沟通的关键部分(或者它可能遗漏了:o)。长话短说,在进行如下所示的更新后,我每次都成功地得到了回复。
dispatch_async(dispatch_get_main_queue(), { () -> Void in
replyHandler(myResponse) // Always call from main thread!
})