我需要存储表中的一些对象。 它不会超过100个对象。 在NSUserDefaults中像数组一样存储它是一种好方法吗?还是有更好的方法?
答案 0 :(得分:3)
虽然您可以使用NSUserDefaults
存储[[NSUserDefaults standardUserDefaults] arrayForKey:@"key"];
,但您可能不应该这样做。默认设计用于存储非常小的数据量,例如用户首选项(因此名称)。如果您希望存储的数据多于此数据,那么您可能需要查看.plists
,NSDocumentDirectory
,Core-Data
或SQLite
数据库。
答案 1 :(得分:2)
更好的方法是使用NSArray
s writeToFile:atomically:
或writeToURL:atomically:
将其序列化为磁盘上的二进制blob。 NSUserDefaults
不存储为二进制文件,因此在加载时需要额外的解析时间,并且需要额外的时间写入磁盘。 NSUserDefaults
也不是为了保存大量数据而设计的,而是针对一小组设置数据。
答案 2 :(得分:0)
将所有自定义数据存储在NSDictionary或NSArray中。
现在使用this链接
在文档目录中保存包含自定义数据的字典或数组答案 3 :(得分:-2)
没有在NSUserDefaults上存储数据不好,因为它可能导致严重的黑客攻击。
代替它,您可以使用 AppDelegate 全局存储数据。