繁体   English   中英

iOS之间的应用程序组数据共享

[英]App Groups Data Sharing Between Applications iOS

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

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

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

您可以使用应用程序组存储共享数据,但是我仅尝试使用内置类型来实现。

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

如果您找到使用内置类型的方法,则可以按以下方式使用应用程序组:

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

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

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

注意:如果您转到Apple开发人员门户(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)")
}

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

看一看Core Data:在Apps及其小部件之间共享数据

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM