ios - 使用 UserDefault 自定义套件作为命名空间键
问题描述
我知道在 iOS(不是 macos)中为 UserDefaults 使用自定义套件的典型用例是将数据共享到应用程序扩展。
我想知道使用自定义套件是否有意义
class UserData {
private var source = UserDefaults(suiteName: "MyApp.userData")!
...
}
更好地将与应用程序模块相关的键值与另一个模块隔离(或稍微更好的“命名空间”)。在这个简单的例子中,我想存储一些与用户相关的数据(不值得插入常规数据库)并在用户注销时清除它们。
使用standard
UserDefaults 需要我在密钥前面加上前缀,或者包装所有调用,或者类似的方法,但我觉得使用套件更合适(双关语无意),因为我可以直接删除它或迭代覆盖它(出于某种原因),而不必担心触摸其他键或最糟糕的覆盖现有键(键冲突)。
TLDR:使用一套以上的小数据持久性来代替单一的 UserDefault 是否可以?可能会面临哪些缺点,我还没有找到一篇文章(不涉及扩展数据共享),而且像往常一样,Apple 文档几乎很清楚,如果不是误导的话。
奖励:
最初我虽然这也会排除所有那些系统注入的密钥,但在测试后显示它们也被复制到了 UserDefaults 的套件实例中,尽管我没有“添加”套件作为standard
一,你对此有解释吗?
解决方案
推荐阅读
- java - 将我的 ArrayList 转换为某个属性 JAVA 的 String[]
- javascript - 使用嵌套的对象数组创建多级下拉列表
- sql - 只有一个参数的 SQL Oracle UNION
- typescript - 如何从 ionic 的全局服务中获取变量?
- c# - 尝试发布更新时出现角度未定义变量错误
- r - R 包存在于库中,但在需要安装其他包时仍找不到
- javascript - 如何根据当前列选择值更新不同列/单元格的值 - 可编辑网格同步融合(Javascript es5)
- c - 分拣技术 C
- javascript - Photoshop / 从选区中取出颜色
- docker - docker-compose:在不改变目标路径的情况下映射容器下的整个目录