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

时间:2015-04-29 10:10:01

标签: ios objective-c 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 所有这些应用程序之间?

2 个答案:

答案 0 :(得分:5)

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

如果你试图存储自己的类,你可能需要查看类似NSKeyedArchiver和NSCoding(可能看起来here)。

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

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

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

  1. 在Project Navigator中,单击* .xcodeproj文件(应位于顶部)。
  2. 在Project Navigator的右侧查找Project and Targets。在目标下点击您的主要目标(应该是目标下的第一件事)。
  3. 在顶部,单击“功能”选项卡。
  4. 在“应用程序组”部分中,单击右侧的开关以打开“应用程序组”。
  5. 点击+按钮,添加名为 group.com.company.myApp 的应用程序组。
  6. 转到其他应用中的相同位置,此组现在可供选择。为将要使用此共享数据的每个应用启用此组。
  7. 注意:如果您访问Apple Developer Portal(显示所有证书,标识符,设备和配置文件的Apple网站)并转到标识符>应用程序组您应该看到这个新的应用程序组。

    存储数据:

    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)")
    }
    

答案 1 :(得分:0)

应用程序组旨在共享一个捆绑包,该捆绑包可以被应用程序及其扩展程序用作共享容器,您可以在其中存储共享数据:

看看Core Data: Sharing data between Apps and their Widgets