UserDefaults(套件名称:)的问题

Posted

技术标签:

【中文标题】UserDefaults(套件名称:)的问题【英文标题】:Trouble with UserDefaults(suitename:) 【发布时间】:2021-07-16 21:12:07 【问题描述】:

我正在编写一个包含消息扩展的 ios 应用程序。为了在他们之间共享数据,我创建了一个应用程序组,其密钥类似于“group.com.myCompany.myApp”。该应用程序使用 userDefaults.set(:forKey:) 存储字符串数组。然后应用可以获取或修改数组,扩展可以获取(但不能修改)数组。

应用程序和扩展程序都使用 UserDefaults(suiteName:) 访问 UserDefaults。应用程序和扩展程序都使用相同的套件名称值。

我遇到的问题是,这在模拟器中工作得很好,但在电话上,扩展程序看不到字符串数组。我完全不知所措。

【问题讨论】:

【参考方案1】:

这是权利!

早些时候,在回应已被删除的帖子时,我写道“据我所知,权利文件是正确的”。当我写到一个灯泡在我脑海中熄灭时:“缺少应用程序组权利,这就是它在模拟器中工作而不是在手机上工作的原因!”

我没有意识到必须为调试发布版本单独指定权利,并且我没有为发布版本指定它们。添加它可以解决问题。

【讨论】:

以上是关于UserDefaults(套件名称:)的问题的主要内容,如果未能解决你的问题,请参考以下文章

如何删除仅一个子项目的所有 userdefaults 数据?

将 DateComponents 数组设置为 UserDefaults 不起作用

Swift 3.0:在 TableView 的 UserDefaults 中存储数组

JEST @vue/composition-api + Jest 测试套件无法运行 [vue-composition-api] 在使用任何函数之前必须调用 Vue.use(VueComposition

网络套件!使用 freemarker 从日期 DD/MM/YYYY 获取月份名称不起作用

如何获得主人套房名称?