在 Mac OS X 10.10.3 下删除用户默认设置

在 Mac OS X 10.10.3 下删除用户默认设置

不久之后(我猜是 Mac OS X 10.10.2 之后),我可以NSUserDefaults通过以下方式清除设置:

defaults delete ~/Library/Preference/<my app>.plist

但突然间它就不起作用了,我的设置似乎超级持久。我还手动清除了“已保存的设置”下的任何内容,并为“容器”发出了上述命令(尽管沙盒无论如何都已关闭以进行测试)。

还有什么可以保留我的设置?我想下次重启可能会清除它,但我想避免以后重启。

附言这些设置甚至在重启后仍然存在 :-(

答案1

首先,当使用时,您必须从文件名中defaults删除——它总是会添加它,因此如果您还提供它,它将尝试删除“<my app>.plist.plist”。.plistdefaults

其次,我认为当您指定首选项文件的完整路径时,您会绕过cfprefsd,它(除其他外)会缓存最近使用的首选项。您应该在删除首选项之前(但在退出应用程序之后)使用defaults delete <my app>或运行killall cfprefsd

请注意,如果应用程序处于沙盒中,则defaults删除首选项的错误方法是 - 只需杀死cfprefsd,然后使用rm它删除应用程序的整个沙盒容器(rm ~/Library/Containers/<my app>)或仅删除其首选项文件(rm ~/Library/Containers/<my app>/Data/Library/Preferences/<my app>.plist

答案2

报到~/Library/Containers/

我认为沙盒(App Store)应用程序现在必须将其内容存储在那里。

相关内容