假设我有以下应用标识符com.test.product1,它属于 product1,提供组 ID group.com.test.product1。
我应该将文档共享给具有 com.test.product2的另一个产品,该产品属于 product2 提供 groupid group.com.test.product2。
如何 在所有这些应用程序之间共享一个通用组,例如group.com.test.product ?
假设我有以下应用标识符com.test.product1,它属于 product1,提供组 ID group.com.test.product1。
我应该将文档共享给具有 com.test.product2的另一个产品,该产品属于 product2 提供 groupid group.com.test.product2。
如何 在所有这些应用程序之间共享一个通用组,例如group.com.test.product ?
您可以使用 App Groups 存储共享数据,但我只尝试使用内置类型来执行此操作。
如果您尝试存储自己的类,则可能需要查看 NSKeyedArchiver 和 NSCoding 之类的内容(也许看这里)。
如果您能找到使用内置类型的方法,您可以使用 App Groups,如下所示:
在多个应用程序之间共享 NSUserDefaults 数据
为了在应用程序和扩展程序之间或两个应用程序之间共享默认值,您必须使用以下步骤在设置中添加应用程序组:
注意:如果您访问 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)")
}
应用组旨在共享一个可供应用及其扩展作为共享容器使用的捆绑包,您可以在其中存储共享数据: