Answers:
我敢打赌,在几乎每种情况下,plist文件在语法上都没有错。Apple用于加载和保存plist数据的功能引起了很多关注和大量使用。现在几乎可以确定并修复了每个错误。
(考虑使用pls进行各种操作,例如拖放和剪贴板,启动应用程序的沙箱权限,每个应用程序的用户界面,甚至在Finder中显示哪个图标。如果在plist编写代码中存在一个错误,该错误刚好搞砸了某些应用程序的首选项文件,但没有其他任何东西!)
应用程序的首选项文件(plist)只是将某些内存数据结构存储在磁盘上。因此,如果该应用程序存在导致错误设置的错误,则会将其保存。
通常,当应用开始运行异常时,您只需退出并重新启动即可。这会重设它的许多部分,并可能解决问题。不过,偏好设置文件是从磁盘重新加载的,因此,如果将应用程序的受影响部分保存在持久性首选项中,则重新启动应用程序不会产生任何影响:错误的值将再次加载。那就是删除首选项文件可以提供帮助的时候。就像重新启动应用程序一样,但是要保存一些事情。
这些事情之所以会发生,是因为程序员认为他们的应用程序所拥有的数据是正确的。如果只能通过用户单击标准色轮控件来选择一种颜色,则他们在使用它之前可能不会做任何额外的工作来验证它是否正确。(相比之下,像Safari这样的应用程序需要大量的工作来验证所有内容,因为它可以直接从Internet加载和运行文件。)
好的方面是,它几乎总是正确的,并且如果您假定内部值正确,则容易得多。不利的一面是,如果某个错误的值以某种方式潜行(例如用户做了完全出乎意料的事情),事情就会变得一团糟,直到一切重置。
-writeToFile:atomically:YES
(“将数据写入备份文件,然后-如果没有发生错误,则将备份文件重命名为指定的名称”)。POSIXrename()
函数保证“即使在操作过程中系统崩溃”,文件也将存在。