ios - 用户可以从应用程序外部编辑 plist 吗?
问题描述
我正在使用 UserDefaults 来保存一些持久性数据(应用程序的状态,而不是需要保护的东西)。此数据 (AFAIK) 保存在 plist 中。用户可以在应用程序之外编辑此 plist 吗?我试过了,虽然看起来可能,但当我运行应用程序时,它会用应用程序中的最后一个值覆盖更改。如果不可能,那么“defaults write ...”命令(通过终端)有什么用?
这个问题与 iOS 和 macOS 都有关
解决方案
这取决于您如何使用 UserDefaults。UserDefaults 实际上只不过是一个字典,它可以方便地读取/写入 plist 文件。您可以自行决定该文件的存储位置,从而决定它是否可以由应用程序外的用户更改。您负责在启动时读取值,并可能在它们动态更改时读取它们。
在 iOS 上,仅当您使用UserDefaults.standard
时,plist 文件才会放置在 Apple 的设置应用程序可访问和管理的位置。在适当的时候读取/写入默认值仍然是您的责任。不知道这在 MacOS 上是如何工作的。
如果它们在应用程序启动时被重置,则应用程序很可能会在启动时显式覆盖它们。
推荐阅读
- php - 通过一个字段选择唯一记录
- amazon-web-services - 使用 terraform 导入我的云 AWS 帐户的当前状态
- database - EAV 建模数据库模式来存储设置,这是正确的方法吗?
- php - 如何在php中将数组的索引值设置为0?
- python - 如何清理字符串以使其仅包含可打印的 ASCII 字符?
- html - 如何添加不透明度的背景图像+背景颜色?
- azure - 使用 Kudu API 将带有 serviceBusTrigger 的 azure 函数部署到现有函数应用程序,即使在手动同步触发器后也不会触发
- javascript - 滚动时的 jQuery 导航栏过渡。如何调整特定的过渡点
- php - 产品和品牌页面上的分页按钮在 Prestashop 1.7.5.1 中不起作用
- docker - 我可以将本地构建部署到虚拟机中的 docker swarm 吗?