我设法从伴随应用中使用类似
的代码读取今日扩展中的数据NSUserDefaults *defaults = [[NSUserDefaults alloc] initWithSuiteName:@"group.cdm.TodayExtensionSharingDefaults"];
NSData *encodedObject = [defaults objectForKey:@"DataContactList"];
CV_DataContactList *object = [NSKeyedUnarchiver unarchiveObjectWithData:encodedObject];
使用随附应用中的相应编写代码
NSUserDefaults *defaults = [[NSUserDefaults alloc] initWithSuiteName:@"group.cdm.TodayExtensionSharingDefaults"];
NSData *encodedObject = [NSKeyedArchiver archivedDataWithRootObject:self];
[defaults setObject:encodedObject forKey:@"DataContactList"];
[defaults synchronize];
我创建了应用程序组并添加了两个目标(扩展程序和随播应用程序)的功能。 一切都在模拟器中正常工作,一旦伴随应用程序更改数据就会传递数据。
但是当我在设备上运行扩展时,它无法读取任何数据。我拿到
控制台日志上显示<Warning>: *** -[NSKeyedUnarchiver initForReadingWithData:]: data is NULL
。
我尝试从头开始生成配置文件,使用正确的appid和app组,但它没有解决。
我感谢任何帮助。谢谢!
答案 0 :(得分:0)
尝试在TodayExtension target&gt;中添加保存数据的类文件。构建阶段&gt;编译源代码。您只添加了.m文件。 例如: 如果数据保存文件是MyData.m,请检查该文件是否显示在项目的目标中,并且今天是否为目标。
如果这不起作用且你们中的任何人已经找到了解决方案,请添加它以便以后有用。