3 回答
TA贡献1829条经验 获得超6个赞
App Groups的另一个好处是共享NSUserDefaults
数据库的能力。这也适用于App Extensions(通知中心小部件,自定义键盘等)。
NSUserDefaults
在应用程序组的所有应用程序中初始化您的对象,他们将共享数据库:
Objective-C的:
[[NSUserDefaults alloc] initWithSuiteName:@"<group identifier>"];
迅速:
NSUserDefaults(suiteName: "<group identifier>")
请记住[NSUserDefaults standardUserDefaults]
,每个应用程序的数据库中的所有内容都不会延续到此数据库中。
该文档给出了正确的示例以及(作为β3的)。
并且不要忘记同步数据库:
[yourDefaults synchronize];
TA贡献1824条经验 获得超5个赞
在多个应用程序之间共享NSUserDefaults数据
要在应用和分机之间或2个应用之间共享默认值,您必须使用以下步骤在设置中添加应用组:
在Project Navigator中,单击* .xcodeproj文件(应位于顶部)。
在Project Navigator的右侧查找Project和Targets。在目标下点击您的主要目标(应该是目标下的第一件事)。
在顶部,单击“功能”选项卡。
在“应用程序组”部分中,单击右侧的开关以打开“应用程序组”。
单击+按钮,然后添加名为group.com.company.myApp的应用程序组。
转到其他应用中的相同位置,此组现在可供选择。为将要使用此共享数据的每个应用启用此组。
注意:如果您访问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)")}
- 3 回答
- 0 关注
- 659 浏览
添加回答
举报