Close/Deactivate WCSession
Close/Deactivate WCSession
我正在开发带有手表扩展程序 (watchOS 2) 的 iPhone 应用程序(iOS 9 beta),并将数据从手表传递到 phone 我正在使用 WCSession。
我有 2 个使用 WCSession 的不同视图控制器,因此对于每个控制器,我都实例化了新的 WCSession 对象。对于第一个视图控制器,它工作正常,但是当我想在第二个视图控制器中接收消息时,很少有初始消息仍在发送到第一个控制器。
有什么方法可以在转到第二个控制器之前停用/禁用第一个视图控制器的会话?或者还有其他我应该研究的选项吗?
谢谢!
当您来回传递数据时,您就是在发送字典。如果您指定好的密钥,您可以获得每个 ViewController.
的适当数据
示例:
ViewController1:
[session updateApplicationContext:@{@"viewController1": @"item1"} error:&error];
ViewController2:
[session updateApplicationContext:@{@"viewController2": @"item2"} error:&error];
当您接收数据时:
- (void) session:(nonnull WCSession *)session didReceiveApplicationContext:(nonnull NSDictionary<NSString *,id> *)applicationContext {
if ([applicationContext objectForKey:@"viewController1"]) {
//ViewController1 data
} else if ([applicationContext objectForKey:@"viewController2"]) {
//ViewController2 data
}
}
查看此处的答案以了解有关 WC 的更多信息
我正在开发带有手表扩展程序 (watchOS 2) 的 iPhone 应用程序(iOS 9 beta),并将数据从手表传递到 phone 我正在使用 WCSession。
我有 2 个使用 WCSession 的不同视图控制器,因此对于每个控制器,我都实例化了新的 WCSession 对象。对于第一个视图控制器,它工作正常,但是当我想在第二个视图控制器中接收消息时,很少有初始消息仍在发送到第一个控制器。
有什么方法可以在转到第二个控制器之前停用/禁用第一个视图控制器的会话?或者还有其他我应该研究的选项吗?
谢谢!
当您来回传递数据时,您就是在发送字典。如果您指定好的密钥,您可以获得每个 ViewController.
的适当数据示例:
ViewController1:
[session updateApplicationContext:@{@"viewController1": @"item1"} error:&error];
ViewController2:
[session updateApplicationContext:@{@"viewController2": @"item2"} error:&error];
当您接收数据时:
- (void) session:(nonnull WCSession *)session didReceiveApplicationContext:(nonnull NSDictionary<NSString *,id> *)applicationContext {
if ([applicationContext objectForKey:@"viewController1"]) {
//ViewController1 data
} else if ([applicationContext objectForKey:@"viewController2"]) {
//ViewController2 data
}
}
查看此处的答案以了解有关 WC 的更多信息