我有一个用于OSX的沙盒应用程序,我在NSUserDefaults
中保存了一些数据,一切都很好,直到我从 ~Library / Preferences / 目录中删除了plist文件。
我认为该应用应该重新开始,但事实并非如此。当我调试时,我看到了
[[NSUserDefaults standardUserDefaults] synchronize]
方法返回YES
并且数据保存在类中,但是当我重新启动应用程序时,用户默认值为空。
即使我将这些plist文件从备份复制到Preferences目录,该应用程序也看不到它。
当然plist应保存在Containers /我的应用程序包id / Data / Library / Preferences中,当我将plist文件从备份复制到该目录时,应用程序可以看到它,但为什么不重新创建该文件当我删除它?
有人知道为什么会这样吗?
答案 0 :(得分:2)
检查此问题 - 在沙箱中运行时可能与缓存或 prefs location 相关:
答案 1 :(得分:1)
我遇到了这个问题,这是手动删除文件造成的。你可以做的是使用defaults
terminal命令。通过这种方式,我可以重置默认值而不会破坏任何内容。将“bundle-identifier”替换为您的包ID。
查看当前值:
defaults read bundle-identifier
删除存储的值:
defaults delete bundle-identifier