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