Watchkit :处理多个会话 sendMessageData 请求
Watchkit : Handle multiple session sendMessageData requests
我有一个 WatchOS2 应用程序,它在调用 NSURLSession 后在手表上显示数据。由于响应需要一些时间,如果用户打开另一个界面控制器,另一个调用将转到
- (void)session:(WCSession *)session didReceiveMessageData:(NSData *)messageData replyHandler:(void(^)(NSData *replyMessageData))replyHandler
但如果之前的 api 输出出现,则它 returns 数据通过回复。同样应该发送第二个数据输出。所以这会导致崩溃,我的应用程序会挂起。
有没有办法通过关闭请求来停止发送之前的回复?
不,无法取消之前的请求。听起来您正在让 "currently visible interface controller" 成为 WCSession 的代表,这会混合很多责任。相反,我建议添加像单例 class 这样的东西,它是 WCSession 的永久委托;它会持续存在并通知或将传入数据分派到正确的位置。
我有一个 WatchOS2 应用程序,它在调用 NSURLSession 后在手表上显示数据。由于响应需要一些时间,如果用户打开另一个界面控制器,另一个调用将转到
- (void)session:(WCSession *)session didReceiveMessageData:(NSData *)messageData replyHandler:(void(^)(NSData *replyMessageData))replyHandler
但如果之前的 api 输出出现,则它 returns 数据通过回复。同样应该发送第二个数据输出。所以这会导致崩溃,我的应用程序会挂起。
有没有办法通过关闭请求来停止发送之前的回复?
不,无法取消之前的请求。听起来您正在让 "currently visible interface controller" 成为 WCSession 的代表,这会混合很多责任。相反,我建议添加像单例 class 这样的东西,它是 WCSession 的永久委托;它会持续存在并通知或将传入数据分派到正确的位置。