如何在iPhone应用程序和applewatch之间共享数据?

时间:2017-04-10 13:27:35

标签: ios objective-c watchkit apple-watch

我对从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);

3 个答案:

答案 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框架。

Documentation

答案 2 :(得分:1)

您可以使用WatchKit Connectivity Framework共享数据。您可以使用不同的方式进行背景或互动。

通过Apple查看此video,它解释了iPhone和Watch之间通信的所有不同方式。

此外,您可以创建一个单独的手表连接类,并在iOS和WatchOS中使用它。在设备中建立会话并集成委托方法,您就完成了。您现在可以在iOS和WatchOS上来回发送和接收消息。