与应用程序和扩展程序共享时,UserDefaults 数据存储在哪里?

Posted

技术标签:

【中文标题】与应用程序和扩展程序共享时,UserDefaults 数据存储在哪里?【英文标题】:Where is the UserDefaults data stored when sharing it with app and extension? 【发布时间】:2018-11-15 08:48:06 【问题描述】:

我创建了一个使用“UserDefaults”来存储数据的应用程序。我正在使用应用程序组功能在主机应用程序和扩展程序之间共享数据。我在哪里可以看到其中存储的数据?

使用默认 (UserDefaults.standard) UserDefaults 时,我可以看到存储在“库 -> 首选项 -> appbundlename.plist 下的数据。

即使我从后台杀死它,应用程序仍在显示数据。(数据持续存在)

let sharedDefaults = UserDefaults(suiteName: ListManager.GroupId)

【问题讨论】:

【参考方案1】:
let groupPath = FileManager().containerURL(forSecurityApplicationGroupIdentifier: ListManager.GroupId)!.appendingPathComponent("Library/Preferences")

将为您提供共享组默认值的路径。 请务必为您的应用(和扩展)启用应用组功能。否则,您的组默认值将仅显示在与标准用户默认值相同的目录中(因此在启动之间保持不变),但您的其他应用程序或扩展程序将无法访问。

【讨论】:

以上是关于与应用程序和扩展程序共享时,UserDefaults 数据存储在哪里?的主要内容,如果未能解决你的问题,请参考以下文章

如何与 iOS 扩展共享 Parse 登录会话?

iOS 扩展 - 共享气泡与共享按钮?

与主应用程序共享核心数据上下文的应用程序扩展编程指南

与共享扩展程序通信/打开包含应用程序[关闭]

iOS 共享扩展未显示 URL 和文本

使用共享扩展将图像保存到文档文件夹