我的Mac应用程序的NSUserDefaults来自哪里?

时间:2014-03-02 09:44:03

标签: objective-c macos cocoa nsuserdefaults

这可能与这个问题有关,但对我没什么帮助:

Where is a Mac Application's NSUserDefaults Data Stored?

当我退出我的应用程序时,我的设置被写入库/首选项文件夹,而不是其他地方。至少我没有看到任何其他东西。我的应用程序也没有沙盒。 每次我运行我的应用程序并更改设置时,都会写入一个新的设置文件,所以我猜这是真实的,而不是旧的副本。

但如果我编辑保存的设置甚至删除文件,我的应用程序将再次使用之前保存的设置重新启动。我甚至把垃圾倒掉了。

这些设置来自哪里? 我想将我的应用程序重置为我在代码中设置的默认设置,但我完全无法这样做。它总是找到一些要加载的设置。

修改

我使用了这个问题的代码: Easy way to see saved NSUserDefaults?

NSArray *path = NSSearchPathForDirectoriesInDomains(
NSLibraryDirectory, NSUserDomainMask, YES);
NSString *folder = [path objectAtIndex:0];
NSLog(@"Your NSUserDefaults are stored in this folder: %@/Preferences", folder);

它输出说我的设置在库/ Prefrences中。所以我再次删除了该文件。当我重新启动应用程序时,它仍然坚持我的设置。

1 个答案:

答案 0 :(得分:0)

不要被OS X中的缓存机制欺骗 -
您在磁盘上的文件中看到的并不总是应用程序看到的当前值。

要获取当前设置,您应该使用终端中的defaults命令 通过键入man defaultshere可以找到文档。

没有在我之前尝试过,但tye delete选项听起来就像你在寻找...