应用数据共享不起作用

时间:2016-10-21 12:52:52

标签: ios objective-c iphone

我有两个应用程序,两个都在同一个应用程序组中......我只想暂时在它们之间共享一个字符串。

 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 ..

非常感谢任何帮助

3 个答案:

答案 0 :(得分:0)

您的应用组设置不正确,您没有使用正确的组ID initWithSuiteName:

答案 1 :(得分:0)

要使用 应用程序组 在应用之间使用数据共享,必须按照以下步骤进行以下设置:

1.在Project Navigator中,单击*.xcodeproj文件。

  1. 在Project Navigator的右侧查找Project and Targets。在目标下点击您的主要目标(应该是目标下的第一件事)。 在顶部,点击Capabilities标签。

  2. 在“应用程序组”部分中,单击右侧的开关以打开应用程序组ON

  3. 单击+按钮,然后添加名为group.my.bundle.id的应用程序组。 转到其他应用中的相同位置,此组现在可供选择。为将要使用此共享数据的每个应用启用此组。

  4. 注意:对两个应用程序执行相同操作以在其间共享数据。

    在此处阅读更多帮助:Communicating and persisting data between apps with App Groups

    此处还有红色文档:

    https://developer.apple.com/library/content/documentation/General/Conceptual/ExtensibilityPG/ExtensionScenarios.html#//apple_ref/doc/uid/TP40014214-CH21-SW6

答案 2 :(得分:0)

您必须从Targets-> Compabilities启用App Groupsenter image description here

Here是一个简单的教程。