好的,我承认NSUserDefaults
,作为一个特定于 Mac 的东西(过去几年我是一名 Mac 程序员),是我没有深入研究的事情之一......所以这里有一些我的问题/问题遇到过:
我知道这NSUserDefaults
基本上是一个NSMutableDictionary
书面形式.plist
。
我的问题:
鉴于我正在运行 OS X 10.7 (Lion) 并启用了沙盒,我的应用程序的 .plist 文件在哪里?(我都搜索过
~/Library/Preferences/com.example.myapp.plist
,~/Library/Containers/com.example.myapp/Data/Library/Preferences/com.example.myapp.plist
但这些似乎都不有效我知道这个
.plist
文件是在应用程序第一次启动时创建的,对吗?registerDefaults:
将在应用程序启动时使用(例如 inawakeFromNib
)并提供立即存储在.plist
文件中的默认值字典,并且只有在某个时候设置了不同的值时才更改,对吗?当我们设置一个特定的键值对时,该对是否会自动并立即保存到
.plist
文件中?如果是这样,我们为什么/什么时候应该使用synchronize
?(每次设置某个值时都使用它是过度杀伤,还是应该为特殊情况保留?)
旁注:我希望没有人抱怨我对osx
标签的使用。但是,我真的厌倦了看到 Cocoa Touch / iOS 相关的答案来回答我(主要是)与 OSX 相关的问题。所以,你在这里...... :-)
编辑:有关该主题的一些真正有用的见解,请查看已接受的答案及其下方的评论。