vs自己的Plist

时间:2011-01-20 14:44:28

标签: iphone objective-c plist nsuserdefaults

在我过去的项目中,我总是创建一个与自制Plist交互的NSObject-HelperClass。现在我听说我可以使用[NSUserDefaults standardUserDefaults]并且还有我的字典。

那么我为什么要使用UserDefaults而不是我自己的按摩plist的NSObject呢?

欢呼endo

3 个答案:

答案 0 :(得分:5)

NSUserDefaults是一种存储某些首选项和应用程序当前状态的便捷方式(例如:“记住我”复选框设置为是或否)。您只应将它用于此类数据。

您也可以使用自定义PList来存储此类信息,但它可能过度。

关键问题是您需要存储的数据有多大?

small dataset => NSUserDefaults的

large dataset => PList

如果您有严重的存储需求,还应考虑使用CoreData。

答案 1 :(得分:1)

如果我没记错的话,建议Apple主要将NSUserDefaults用于用户默认设置。也许我在WWDC 2010的一个视频中听到了它。

NSUserDefaults最大的问题是它们是“半不可变的”。即使您只更改该集合中包含的一个对象,也必须用setObjectForKey替换整个集合。

除此之外,我认为使用NSUserDefaults是好的,如果你没问题的话。

答案 2 :(得分:0)

NSUserDefaults有许多可能有用的属性;例如,它会自动合并更改,以避免过于频繁地写入磁盘。您也可以使用终端中的'defaults'命令对其进行操作,这可以方便地进行测试。最后,它是线程安全的,这很难做到。