ios - 多个 View Controller 中的 WatchConnectivity session
<p><p>我正在使用 watchOS 2 开发 watch 应用,其父应用在 iOS 9 测试版上。我正在使用 <code>WatchConnectivity</code>session 将数据从 Apple Watch 传递到 iPhone。我需要在 2 个不同的 ViewController 文件中进行 session ,那么在每个 ViewController 中启动新的 WCSession 并使用它们有什么问题吗?</p>
<p>基本上我正在尝试使用 <code>performSegueWithIdentifier</code> 从一个 ViewController 导航到另一个 ViewController ,当我将它放入 <code>viewDidLoad</code> 时它工作正常,但只要我放入它在 session 方法中,它开始中断,我怀疑它必须与 WCSessions 做一些事情。</p>
<p>以下是我试图导航的代码部分:</p>
<pre><code>- (void)session:(nonnull WCSession *)session didReceiveMessage:(nonnull NSDictionary *)message replyHandler:(nonnull void (^)(NSDictionary * __nonnull replyMessage))replyHandler {
NSString *msg = ;
// NSDictionary* replyValues =@{@"session":@"established between phone and watch"};
if () {
isWatch = true;
;
}
// NSUserDefaults *prefs = ;
// ;
//replyHandler(replyValues);
}
</code></pre>
<p>谢谢!</p></p>
<br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
<p><p>WCSessionheader 中 WCSessionDelegate 部分上方的注释指出:</p>
<blockquote>
<p>----------------------------- WCSessionDelegate -----------------------------</p>
<p>The session calls the delegate methods when content is received and session
state changes. All delegate methods will be called on the same queue. The
delegate queue is a non-main serial queue. It is the client's responsibility
to dispatch to another queue if neccessary.</p>
</blockquote>
<p>因此,如果您想更新 UI(并且您正在使用 UIKit),则必须在调用 UI 更新方法之前调度到主队列。</p></p>
<p style="font-size: 20px;">关于ios - 多个 ViewController 中的 WatchConnectivitysession ,我们在Stack Overflow上找到一个类似的问题:
<a href="https://stackoverflow.com/questions/31488391/" rel="noreferrer noopener nofollow" style="color: red;">
https://stackoverflow.com/questions/31488391/
</a>
</p>
页:
[1]