应用程序组应用程序iOS数据共享

rag*_*hul 2 objective-c ios ios-app-group

假设我有以下应用程序标识符com.test.product1,它是product1,提供组ID为group.com.test.product1.

我应该将文档共享给另一个产品com.test.product2,该产品 是product2提供groupid group.com.test.product2.

如何 在所有这些应用程序之间共享一个像group.com.test.product这样的公共组?

Ten*_*Jay 5

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

如果您正在尝试存储自己的类,则可能需要查看类似NSKeyedArchiver和NSCoding的内容(也许请查看此处).

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

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

要在应用和分机之间或2个应用之间共享默认值,您必须使用以下步骤在设置中添加应用组:

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

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

存储数据:

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

要检索数据:

var userDefaults = NSUserDefaults(suiteName: "group.com.company.myApp")
if let testUserId = userDefaults?.objectForKey("userId") as? String {
  print("User Id: \(testUserId)")
}
Run Code Online (Sandbox Code Playgroud)