如何存储用户数据iOS

时间:2014-05-19 14:29:57

标签: ios objective-c uitableview nsuserdefaults

我需要存储用户可以添加的数据,他们可以添加无限量。它们可以是NSStringsUIImage。我查看了NSUserDefaults,但它似乎用于少量数据,如设置或首选项。

存储用户信息的最佳/最安全的方式是什么,以便当他们关闭应用时,它仍然在应用中。数据填充UITableView并且为NSMutableArray

最好的办法是什么?

3 个答案:

答案 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)