在我过去的项目中,我总是创建一个与自制Plist交互的NSObject-HelperClass。现在我听说我可以使用[NSUserDefaults standardUserDefaults]并且还有我的字典。
那么我为什么要使用UserDefaults而不是我自己的按摩plist的NSObject呢?
欢呼endo
答案 0 :(得分:5)
NSUserDefaults是一种存储某些首选项和应用程序当前状态的便捷方式(例如:“记住我”复选框设置为是或否)。您只应将它用于此类数据。
您也可以使用自定义PList来存储此类信息,但它可能过度。
关键问题是您需要存储的数据有多大?
small dataset => NSUserDefaults的
large dataset => PList
如果您有严重的存储需求,还应考虑使用CoreData。
答案 1 :(得分:1)
如果我没记错的话,建议Apple主要将NSUserDefaults用于用户默认设置。也许我在WWDC 2010的一个视频中听到了它。
NSUserDefaults最大的问题是它们是“半不可变的”。即使您只更改该集合中包含的一个对象,也必须用setObjectForKey
替换整个集合。
除此之外,我认为使用NSUserDefaults是好的,如果你没问题的话。
答案 2 :(得分:0)
NSUserDefaults有许多可能有用的属性;例如,它会自动合并更改,以避免过于频繁地写入磁盘。您也可以使用终端中的'defaults'命令对其进行操作,这可以方便地进行测试。最后,它是线程安全的,这很难做到。