我需要存储用户可以添加的数据,他们可以添加无限量。它们可以是NSStrings
或UIImage
。我查看了NSUserDefaults,但它似乎用于少量数据,如设置或首选项。
存储用户信息的最佳/最安全的方式是什么,以便当他们关闭应用时,它仍然在应用中。数据填充UITableView
并且为NSMutableArray
。
最好的办法是什么?
答案 0 :(得分:11)
必须有十几种方法在iOS中存储用户数据。以下是几个:
Property lists: 存储公共数据存储对象和容器图表的简便方法。如果您只是学习iOS绳索,这是一个很好的起点。
NSKeyedArchiver和NSKeyedUnarchiver:提供了一种简单的方法,可以将对象序列化和反序列化为大量数据,然后使用NSData的方法进行写入/读取。
NSFileHandle:使用漂亮的Objective-C API以您喜欢的任何格式读写数据。更一般地说,您应该阅读iOS file system。
UIDocument:管理用户数据的全功能起点,包括与iCloud同步。
Keychain:不是通用数据存储机制,但如果您要存储密码,信用卡号等敏感项,则应使用钥匙串API。
POSIX文件API:优秀的旧C文件句柄,具有您在大学学习的读写功能,如果您在Java之前上大学的话。
SQLite:根据the web site:“SQLite是世界上部署最广泛的SQL数据库引擎。”
核心数据:一个功能强大(但也有些复杂的对象图管理器。如果您要存储许多不同的相关数据,这是一个不错的选择。
存储用户信息的最佳/最安全的方法是什么 所以,当他们关闭应用程序时,它仍然在应用程序中。数据 填充UITableView并且是NSMutableArray。
最佳是主观的 - 您需要考虑您的需求并查看各种选项。但是,对于很多人来说, best 意味着最痛苦的或最容易学习。如上所述,属性列表可能是这种情况下的方法。如果您的数组包含标准容器(数组或字典)中的简单数据(字符串,数据,日期,数字),那么您的文件I / O可以像这样简单:
// writing
[myArray writeToFile:somePath atomically:YES];
// reading
myArray = [[NSArray arrayWithContentsOfFile:somePath] mutableCopy];
答案 1 :(得分:1)
您应该使用核心数据。有一个非常好的,免费的初学者课程在线avaibable称为cs193p,请看这里http://www.stanford.edu/class/cs193p/cgi-bin/drupal/node/287,它也可以通过iTunes U.它真的值得花时间观看,易于理解。
答案 2 :(得分:0)