• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

ios - 多个 View Controller 中的 WatchConnectivity session

[复制链接]
菜鸟教程小白 发表于 2022-12-13 09:05:52 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我正在使用 watchOS 2 开发 watch 应用,其父应用在 iOS 9 测试版上。我正在使用 WatchConnectivity session 将数据从 Apple Watch 传递到 iPhone。我需要在 2 个不同的 View Controller 文件中进行 session ,那么在每个 View Controller 中启动新的 WCSession 并使用它们有什么问题吗?

基本上我正在尝试使用 performSegueWithIdentifier 从一个 View Controller 导航到另一个 View Controller ,当我将它放入 viewDidLoad 时它工作正常,但只要我放入它在 session 方法中,它开始中断,我怀疑它必须与 WCSessions 做一些事情。

以下是我试图导航的代码部分:

- (void)sessionnonnull WCSession *)session didReceiveMessagenonnull NSDictionary *)message replyHandlernonnull void (^)(NSDictionary * __nonnull replyMessage))replyHandler {
    NSString *msg = [message objectForKey"msg"];
    // NSDictionary* replyValues =  @{@"session""established between phone   and watch"};
    if ([msg isEqualToString"fromWatch"]) {
        isWatch = true;
        [self performSegueWithIdentifier: @"startDashboardSegue" sender: self];
    }
    // NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
    // [prefs setObject:messageFlag forKey"messageFlag"];

    //replyHandler(replyValues);
}

谢谢!



Best Answer-推荐答案


WCSession header 中 WCSessionDelegate 部分上方的注释指出:

----------------------------- WCSessionDelegate -----------------------------

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.

因此,如果您想更新 UI(并且您正在使用 UIKit),则必须在调用 UI 更新方法之前调度到主队列。

关于ios - 多个 View Controller 中的 WatchConnectivity session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31488391/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap