2

假设我有以下应用标识符com.test.product1,它属于 product1,提供组 ID group.com.test.product1。

我应该将文档共享给具有 com.test.product2的另一个产品,该产品属于 product2 提供 groupid group.com.test.product2。

如何 在所有这些应用程序之间共享一个通用组,例如group.com.test.product ?

4

2 回答 2

5

您可以使用 App Groups 存储共享数据,但我只尝试使用内置类型来执行此操作。

如果您尝试存储自己的类,则可能需要查看 NSKeyedArchiver 和 NSCoding 之类的内容(也许看这里)。

如果您能找到使用内置类型的方法,您可以使用 App Groups,如下所示:

在多个应用程序之间共享 NSUserDefaults 数据

为了在应用程序和扩展程序之间或两个应用程序之间共享默认值,您必须使用以下步骤在设置中添加应用程序组:

  1. 在 Project Navigator 中单击 *.xcodeproj 文件(应该在顶部)。
  2. 在 Project Navigator 的右侧,查找 Project and Targets。在目标下单击您的主要目标(应该是目标下的第一件事)。
  3. 在顶部,单击功能选项卡。
  4. 在 App Groups 部分中,单击右侧的开关以打开 App Groups。
  5. 单击 + 按钮并添加一个名为group.com.company.myApp的应用程序组。
  6. 转到其他应用程序中的相同位置,现在应该可以选择该组。为将使用此共享数据的每个应用打开此组。

注意:如果您访问 Apple Developer Portal(显示所有证书、标识符、设备和配置文件的 Apple 网站)并转到 Identifiers > App Groups,您应该会看到这个新的 App Group。

存储数据:

var userDefaults = NSUserDefaults(suiteName: "group.com.company.myApp")
userDefaults!.setObject("user12345", forKey: "userId")
userDefaults!.synchronize()

要检索数据:

var userDefaults = NSUserDefaults(suiteName: "group.com.company.myApp")
if let testUserId = userDefaults?.objectForKey("userId") as? String {
  print("User Id: \(testUserId)")
}
于 2015-10-29T14:32:16.083 回答
0

应用组旨在共享一个可供应用及其扩展作为共享容器使用的捆绑包,您可以在其中存储共享数据:

看看核心数据:在应用程序和它们的小部件之间共享数据

于 2015-09-26T16:41:55.693 回答