- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在使用 watchOS 2 开发一个 watch 应用程序,它的父应用程序在 iOS 9 beta 上。我正在使用 WatchConnectivity
session 将数据从 Apple Watch 传递到 iPhone。我需要在 2 个不同的 View Controller 文件中进行 session ,那么在每个 View Controller 中启动新的 WCSession 并使用它们是否有任何问题?
基本上我正在尝试使用 performSegueWithIdentifier
从一个 View Controller 导航到另一个 View Controller ,当我将它放入 viewDidLoad
时它工作正常,但是一旦我放入它在 session 方法中,它开始中断,我怀疑它必须对 WCSessions 做些什么。
以下是我尝试导航的代码部分:
- (void)session:(nonnull WCSession *)session didReceiveMessage:(nonnull NSDictionary *)message replyHandler:(nonnull 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);
}
谢谢!
最佳答案
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 更新方法之前分派(dispatch)到主队列。
关于ios - 多个 View Controller 中的 WatchConnectivity session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31488391/
我正在使用 WatchConnectivity 将图像从 iOS 传输到 Watch OS。在模拟器中调试时遇到问题 如我在(发件人端,即 iOS)中所见,文件已成功传输 public func se
我有一个 watchOS 应用程序,它使用 WatchConnectivity 框架在 Safari 中打开 URL。当我的应用程序在 iPhone 上运行并同时在 Apple Watch 上运行时,
我想在 Today Extension 中显示在 watch OS 2 应用程序上输入的数据,而无需先启动 iPhone 应用程序。 Today Extensions 是否支持通过 WatchConn
借助新的 Watch OS 2 和新的 Watch Connectivity,不再需要使用应用程序组在 watch 和 iOS 应用程序之间共享数据。但是如何避免应用程序和扩展程序中重复字符串呢? 例
我正在访问一个用户的联系人,以便将联系人姓名和生日从 iPhone 发送到 AppleWatch。我可以访问联系人并可以在手机上显示数据,但我无法使用 WatchConnectivity 发送信息。我
我目前正在尝试将 CoreData 数据从我的 iOS 应用程序获取到 watchOS 扩展程序。我正在使用 WatchConnectivity 框架通过 sendMessage(_ message:
我正在尝试使用 Swift 中的 WatchConnectivity API 在 Apple Watch(版本 2.0.1)和我的 iPhone(运行 iOS 9.1)之间建立连接。 我关注了this
我正在开发我的第一个 Apple Watch 应用程序(我的 iOS 应用程序的扩展)。我在将数据从一个 WKInterfaceController 发送到另一个时遇到了一个小问题。 我的第一个 Co
我一直在为 WCSession 使用 NatashaTheRobot 单例,但无法使 sendMessage 正常工作。 我的目标是从 Watch 应用程序向 iOS 应用程序发送一条消息,并将字典从
我希望我的复杂功能通过 Watch Connectivity 从 iPhone 获取数据。我正在使用 sendMessage 即时消息技术。 我不想在尝试获取数据时打开我的 iPhone 应用程序,因
当使用 WatchConnectivity 框架发送数据时,无论是从手机到 watch 还是反之亦然,在框架给我 WCErrorCodePayloadTooLarge 错误之前负载有多大? 我无法在
Apple 是否表明对于 sendMessage(_ message: [String : AnyObject]...) 从 watch 到 iPhone 的传输时间的实际预期是多少?对于单个字符串的
我正在尝试将数据从我的 iOS 应用发送到 Watch 应用。我为此使用 updateApplicationContext。 我有一个在 NSDictionary 中转换的 json 文件并尝试发送它
我正在尝试从 iOS -> Watch 发送数据,当事件 Controller 实现了 didReceiveApplicationContext 时,这工作正常。我可以接收上下文对象并且一切正常。 但
我试图将我的 swift 对象从 iOS 应用程序传递到 watch 。但是,我发现它适用于 NSString 等基本类型,但适用于我的自定义对象类型。 我的自定义对象能够转换为 NSData 我已经
我一直致力于从我的 iOS 应用向我的 WatchOS 发送 ApplicationContext 形式的 int notificationCount。 func session(_ session:
我正在开发我们应用程序的 WatchOS 2 版本,并且坚持这样一个事实,即我只能发送一个带有函数“updateApplicationContext:(NSDictionary *)”的字符串。 我希
我想使用 WatchConnectivity 和设置 WCSession 将在 watch 上创建的文件发送到 iOS 配套应用程序,但它无法通过 iPhone。当我改为使用发送包含字典的消息时,数据
创建独立的watchOS应用程序时是否可以使用WatchConnectivity框架? 文档 https://developer.apple.com/documentation/watchkit/cr
我有一个 iOS 应用程序,它使用 WatchConnectivity 与配对的 watch 进行通信。在大多数情况下,它可以在模拟器和设备上正常运行。 问题: 在模拟器上的开发过程中,当我尝试使用
我是一名优秀的程序员,十分优秀!