数据存储问题

时间:2010-04-04 17:05:40

标签: cocoa data-storage

另一个新手问题:在用Obj-C编写的Cocoa应用程序中存储数据的最佳方法是什么?例如,如果我想创建一种“quizzer”,用预先写好的(和用户编写的)问题来测验用户?我如何存储这些问题和答案?核心数据?

谢谢!

2 个答案:

答案 0 :(得分:3)

当然是核心数据

它将处理所有事情..看看这里:http://developer.apple.com/macosx/coredata.html

这是一个可以处理的完整API:

  • 数据库和运行时对象之间的ORM
  • 持久性
  • 自动构建工具(如ER编辑器)
  • 它已经开箱即用,您几乎不需要实现任何东西......只需查询对象控制器就可以访问您的数据了

对于你的问题,这个解决方案可能过大,但你将学会如何在一个简单的案例中使用它,我将来会派上用场。

答案 1 :(得分:3)

正如@Jack所示,核心数据无疑是一个很好的选择。还有其他一些选择。

  1. NSCoding - 您可以使模型对象符合NSCoding协议(类似于java.io.Serializable),这意味着您可以直接将它们写入文件。我发现当我没有大量数据要坚持时,这是一个很好的选择,而我坚持的数据结构相对简单。

  2. SQLite - 如果您的数据非常关系,您可能需要考虑直接使用数据库(可能是SQLite)。核心数据是一个对象存储,虽然它处理对象之间的关系之类的事情,但它不允许你做真正有用的事情,如INNER/LEFT/OUTER/CROSS/NATURAL JOIN或其他多表操作符。

  3. NSUserDefaults - 如果您的数据非常小并且实际上只是键值对,那么您可以将它全部放入NSUserDefaults对象中,这将为您保留它首选项文件。但是,即使您的数据很简单,如果您有很多数据,NSUserDefaults可能也不是最佳选择。