我对从iPhone应用程序到Apple watch的共享数据有疑问。我尝试下面的代码来分享NSMutablearray到苹果手表,但它不起作用。
NSData *encodedObject = [NSKeyedArchiver archivedDataWithRootObject:arrStartScore];
NSUserDefaults *defaults = [[NSUserDefaults alloc] initWithSuiteName:@"group.com.test.StartScore"];
[defaults setObject:encodedObject forKey:@"WatchHomeViewTableList"];
[defaults synchronize];
将数据检索到Apple Watch
NSUserDefaults *myDefaults = [[NSUserDefaults alloc] initWithSuiteName:@"group.com.test.StartScoreCheck"];
arrStartScore = [myDefaults objectForKey:@"WatchHomeViewTableList"];
NSLog(@"dict....%@",arrStartScore);
答案 0 :(得分:5)
要从手机发送数据观看,请使用此代码。
WCSession *session = [WCSession defaultSession];
NSError *error;
[session updateApplicationContext:@{@"message": yourArray} error:&error];
要从手表上的手机接收数据:
- (void) session:(nonnull WCSession *)session didReceiveApplicationContext:(nonnull NSDictionary<NSString *,NSMutableArray *> *)applicationContext {
}
您可以使用
在didReceiveApplicationContext中访问您的数组 [applicationContext objectForKey:@"message"];
答案 1 :(得分:1)
watchOS3在手表和手机上分离了UserDefaults。 AppGroup可以在一个设备中的一个开发人员的应用程序之间共享数据。要在设备之间传输数据,请使用WatchConnectivity框架。
答案 2 :(得分:1)
您可以使用WatchKit Connectivity Framework共享数据。您可以使用不同的方式进行背景或互动。
通过Apple查看此video,它解释了iPhone和Watch之间通信的所有不同方式。
此外,您可以创建一个单独的手表连接类,并在iOS和WatchOS中使用它。在设备中建立会话并集成委托方法,您就完成了。您现在可以在iOS和WatchOS上来回发送和接收消息。