我有两个应用程序,两个都在同一个应用程序组中......我只想暂时在它们之间共享一个字符串。
NSUserDefaults * defaultsStore = [[NSUserDefaults alloc] initWithSuiteName:@"group.my.bundle.id"];
[defaultsStore setObject:@"TEST" forKey:@"Testing"];
[defaultsStore synchronize];
在另一个应用程序中,我也是应用程序组的一部分
NSUserDefaults * defaultsStore = [[NSUserDefaults alloc] initWithSuiteName:@"group.my.bundle.id"];
NSString * testingString = [defaultsStore objectForKey:@"Testing"];
似乎没什么用。我不认为我必须制作扩展目标,因为它们是独立的独立应用程序?
defaultsStore不为null,但容器对象始终为null ..
非常感谢任何帮助
答案 0 :(得分:0)
您的应用组设置不正确,您没有使用正确的组ID initWithSuiteName:
答案 1 :(得分:0)
要使用 应用程序组 在应用之间使用数据共享,必须按照以下步骤进行以下设置:
1.在Project Navigator中,单击*.xcodeproj
文件。
在Project Navigator的右侧查找Project and Targets。在目标下点击您的主要目标(应该是目标下的第一件事)。
在顶部,点击Capabilities
标签。
在“应用程序组”部分中,单击右侧的开关以打开应用程序组ON
。
单击+
按钮,然后添加名为group.my.bundle.id
的应用程序组。
转到其他应用中的相同位置,此组现在可供选择。为将要使用此共享数据的每个应用启用此组。
注意:对两个应用程序执行相同操作以在其间共享数据。
在此处阅读更多帮助:Communicating and persisting data between apps with App Groups
此处还有红色文档:
答案 2 :(得分:0)
您必须从Targets-> Compabilities启用App Groups
。
Here是一个简单的教程。