首页 > 解决方案 > 用户可以从应用程序外部编辑 plist 吗?

问题描述

我正在使用 UserDefaults 来保存一些持久性数据(应用程序的状态,而不是需要保护的东西)。此数据 (AFAIK) 保存在 plist 中。用户可以在应用程序之外编辑此 plist 吗?我试过了,虽然看起来可能,但当我运行应用程序时,它会用应用程序中的最后一个值覆盖更改。如果不可能,那么“defaults write ...”命令(通过终端)有什么用?

这个问题与 iOS 和 macOS 都有关

标签: iosmacosplist

解决方案


这取决于您如何使用 UserDefaults。UserDefaults 实际上只不过是一个字典,它可以方便地读取/写入 plist 文件。您可以自行决定该文件的存储位置,从而决定它是否可以由应用程序外的用户更改。您负责在启动时读取值,并可能在它们动态更改时读取它们。

在 iOS 上,仅当您使用UserDefaults.standard时,plist 文件才会放置在 Apple 的设置应用程序可访问和管理的位置。在适当的时候读取/写入默认值仍然是您的责任。不知道这在 MacOS 上是如何工作的。

如果它们在应用程序启动时被重置,则应用程序很可能会在启动时显式覆盖它们。


推荐阅读