2011-01-20 55 views
1

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

所以我为什么要使用UserDefaults的不是我自己的NSObject这按摩的plist?

欢呼内

回答

5

NSUserDefaults是一种方便的方式来存储一些首选项和应用程序的当前状态(例如:“记住我”复选框设置为是或否)。你只能用这种数据。

您也可以使用自定义PList来存储这种信息,但它可能是矫枉过正。

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

小数据集=> NSUserDefaults的

大型数据集=>的plist

你也应该考虑使用CoreData,如果你有严重的存储需求。

+0

这意味着字符串,布尔和数字放在NSUSerDefaults – 2011-01-20 15:51:10

1

如果我没有记错,苹果建议主要使用的NSUserDefaults的用户默认。也许我在其中一个来自WWDC 2010的视频中听到了它。

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

除此之外,我认为它是好的,如果你确定它使用NSUserDefaults的。

0

NSUserDefaults有许多可能有用的属性;例如它会自动合并更改以避免太频繁地写入磁盘。您也可以使用Terminal中的'defaults'命令来操作它,这对测试来说非常方便。最后,它是线程安全的,难以正确执行。

相关问题