另一个新手问题:在用Obj-C编写的Cocoa应用程序中存储数据的最佳方法是什么?例如,如果我想创建一种“quizzer”,用预先写好的(和用户编写的)问题来测验用户?我如何存储这些问题和答案?核心数据?
谢谢!
答案 0 :(得分:3)
当然是核心数据!
它将处理所有事情..看看这里:http://developer.apple.com/macosx/coredata.html
这是一个可以处理的完整API:
对于你的问题,这个解决方案可能过大,但你将学会如何在一个简单的案例中使用它,我将来会派上用场。
答案 1 :(得分:3)
NSCoding
- 您可以使模型对象符合NSCoding协议(类似于java.io.Serializable
),这意味着您可以直接将它们写入文件。我发现当我没有大量数据要坚持时,这是一个很好的选择,而我坚持的数据结构相对简单。
SQLite - 如果您的数据非常关系,您可能需要考虑直接使用数据库(可能是SQLite)。核心数据是一个对象存储,虽然它处理对象之间的关系之类的事情,但它不允许你做真正有用的事情,如INNER/LEFT/OUTER/CROSS/NATURAL JOIN
或其他多表操作符。
NSUserDefaults
- 如果您的数据非常小并且实际上只是键值对,那么您可以将它全部放入NSUserDefaults
对象中,这将为您保留它首选项文件。但是,即使您的数据很简单,如果您有很多数据,NSUserDefaults
可能也不是最佳选择。