我设法从配套应用程序的 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 和应用程序组的配置文件,但没有解决。
我很感激任何帮助。谢谢!