【发布时间】:2014-03-07 16:36:50
【问题描述】:
我有一个适用于 OSX 的沙盒应用程序,我在 NSUserDefaults 中保存了一些数据,一切都很好,直到我从 ~Library/Preferences/ 目录中删除了 plist 文件。
我认为应用程序应该重新创建它,但它没有。当我调试时,我看到了
[[NSUserDefaults standardUserDefaults] synchronize] 方法返回YES
数据保存在类中,但是当我重新启动应用程序时,用户默认为空。
即使我将这些 plist 文件从备份复制到 Preferences 目录,应用程序也看不到它。
当然 plist 应该保存在 Containers/my app bundle id/Data/Library/Preferences 中,当我将 plist 文件从备份复制到该目录时,应用程序可以看到它,但是为什么没有重新创建该文件我什么时候删除的?
有人知道这是为什么吗?
【问题讨论】:
-
我不明白反对票。完全合法的问题。我也遇到 NSUserDefaults 没有持续存在的问题。我想测试从“空白”板岩启动的应用程序。所以我丢弃了我的沙箱容器,一旦我这样做了,NSUserDefaults 就永远不会持续存在,直到我重新启动操作系统。登录/注销没有任何作用,只有重新启动有帮助。
-
谢谢@Brad Goss。清理沙箱后,我遇到了同样的问题,调试了几个小时,尽管我快疯了。重新启动 OSX 似乎已经解决了。
标签: macos cocoa nsuserdefaults