2

我设法从配套应用程序的 Today Extensions 中读取数据,代码如下

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 和应用程序组的配置文件,但没有解决。

我很感激任何帮助。谢谢!

4

1 回答 1

0

尝试在 TodayExtension 目标 > 构建阶段 > 编译源中添加保存数据的类文件。您只在其中添加了 .m 文件。例如:如果数据保存文件是 MyData.m,请检查该文件是否存在于项目的目标和今天的 extn 目标中。

如果这不起作用并且你们中的任何人已经找到了解决方案,请添加它,以便以后有帮助。

于 2015-09-02T11:01:10.970 回答