Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何在iPhone应用程序和applewatch之间共享数据?_Ios_Objective C_Watchkit_Apple Watch - Fatal编程技术网

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

Ios 如何在iPhone应用程序和applewatch之间共享数据?,ios,objective-c,watchkit,apple-watch,Ios,Objective C,Watchkit,Apple Watch,我在从iPhone应用程序到apple watch共享数据方面遇到了一个问题。我尝试了下面的代码将NSMutablearray共享给apple watch,但它不起作用 NSData *encodedObject = [NSKeyedArchiver archivedDataWithRootObject:arrStartScore]; NSUserDefaults *defaults = [[NSUserDefaults alloc] initWithSuiteName:@"group.com.

我在从iPhone应用程序到apple watch共享数据方面遇到了一个问题。我尝试了下面的代码将NSMutablearray共享给apple watch,但它不起作用

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);

watchOS3将手表和手机上的用户默认设置分开。应用程序组可以在一个设备内的一个开发人员的应用程序之间共享数据。为了在设备之间传输数据,请使用WatchConnectivity框架


要从手机向手表发送数据,请使用此代码

WCSession *session = [WCSession defaultSession];
NSError *error;

[session updateApplicationContext:@{@"message": yourArray} error:&error];
要从手表上的手机接收数据,请执行以下操作:

 - (void) session:(nonnull WCSession *)session didReceiveApplicationContext:(nonnull NSDictionary<NSString *,NSMutableArray *> *)applicationContext {   
 }

您可以使用WatchKit连接框架共享数据。有不同的方式可以用于背景或交互

苹果公司的这篇文章解释了iPhone和手表之间所有不同的通信方式


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

使用AppGroups功能在功能中启用它,您好,但它崩溃了。我的操作与您给定的链接相同。我正在viewcontroller上的viewdidload中存储阵列。它的崩溃。由于未捕获异常“NSInvalidArgumentException”而终止应用程序,原因:“尝试插入非属性列表对象”(
  [applicationContext objectForKey:@"message"];