在我过去的项目中,我总是创建一个NSObject-HelperClass,它与selfmade-Plist进行交互。现在我听说我可以使用[NSUserDefaults standardUserDefaults]并且还有我的字典。vs自己的Plist
所以我为什么要使用UserDefaults的不是我自己的NSObject这按摩的plist?
欢呼内
在我过去的项目中,我总是创建一个NSObject-HelperClass,它与selfmade-Plist进行交互。现在我听说我可以使用[NSUserDefaults standardUserDefaults]并且还有我的字典。vs自己的Plist
所以我为什么要使用UserDefaults的不是我自己的NSObject这按摩的plist?
欢呼内
NSUserDefaults是一种方便的方式来存储一些首选项和应用程序的当前状态(例如:“记住我”复选框设置为是或否)。你只能用这种数据。
您也可以使用自定义PList来存储这种信息,但它可能是矫枉过正。
关键的问题是在数据需要多大存储?
小数据集=> NSUserDefaults的
大型数据集=>的plist
你也应该考虑使用CoreData,如果你有严重的存储需求。
如果我没有记错,苹果建议主要使用的NSUserDefaults的用户默认。也许我在其中一个来自WWDC 2010的视频中听到了它。
NSUserDefaults最大的问题是它们是“半不可变的”。即使只更改该集合中包含的一个对象,也必须用setObjectForKey
替换整个集合。
除此之外,我认为它是好的,如果你确定它使用NSUserDefaults的。
NSUserDefaults有许多可能有用的属性;例如它会自动合并更改以避免太频繁地写入磁盘。您也可以使用Terminal中的'defaults'命令来操作它,这对测试来说非常方便。最后,它是线程安全的,难以正确执行。
这意味着字符串,布尔和数字放在NSUSerDefaults – 2011-01-20 15:51:10