在UserDefaults中存储自定义数据的好方法是什么?

时间:2012-08-29 11:43:35

标签: objective-c ios caching nsuserdefaults

我需要存储表中的一些对象。 它不会超过100个对象。 在NSUserDefaults中像数组一样存储它是一种好方法吗?还是有更好的方法?

4 个答案:

答案 0 :(得分:3)

虽然您可以使用NSUserDefaults存储[[NSUserDefaults standardUserDefaults] arrayForKey:@"key"];,但您可能不应该这样做。默认设计用于存储非常小的数据量,例如用户首选项(因此名称)。如果您希望存储的数据多于此数据,那么您可能需要查看.plistsNSDocumentDirectoryCore-DataSQLite数据库。

答案 1 :(得分:2)

更好的方法是使用NSArray s writeToFile:atomically:writeToURL:atomically:将其序列化为磁盘上的二进制blob。 NSUserDefaults不存储为二进制文件,因此在加载时需要额外的解析时间,并且需要额外的时间写入磁盘。 NSUserDefaults也不是为了保存大量数据而设计的,而是针对一小组设置数据。

答案 2 :(得分:0)

将所有自定义数据存储在NSDictionary或NSArray中。

现在使用this链接

在文档目录中保存包含自定义数据的字典或数组

答案 3 :(得分:-2)

没有在NSUserDefaults上存储数据不好,因为它可能导致严重的黑客攻击。

代替它,您可以使用 AppDelegate 全局存储数据。