开发者

Data Storage question

开发者 https://www.devze.com 2022-12-25 20:39 出处:网络
Another newbie question: What\'s the best way to store data in a Cocoa application written in Obj-C? For example if I want to create a sort of \"quizzer\" that quizzes the user with pre-written (and u

Another newbie question: What's the best way to store data in a Cocoa application written in Obj-C? For example if I want to create a sort of "quizzer" that quizzes the user with pre-written (and user-written) questions? How would I store these questions and an开发者_开发知识库swers? Core Data?

Thanks!


Of course it's Core Data!

It will handle everything.. take a look here: http://developer.apple.com/macosx/coredata.html

It's a full API that can handle:

  • ORM between databases and run-time objects
  • persistence
  • automatic building tools (like an ER-editor)
  • it's ready out of the box, you won't need to implement almost anything.. you will already have access to your data by just querying it to the object controllers

Probably this solution is over-sized for your problem but you will learn how to use it with a simple case, and I will come handy in the future..


Core Data is certainly an excellent option, as @Jack has shown. There are some other options as well.

  1. NSCoding - You can make your model objects conform to the NSCoding protocol (similar to java.io.Serializable), which means you'd be able to directly write them to files. I've found that this is a great option when I don't have massive amounts of data to persist, and the data that I am persisting has a relatively simple structure.

  2. SQLite - If your data is very relational, you may want to consider using a database (probably SQLite) directly. Core Data is an object store, and while it handles things like relationships between objects, it doesn't allow you to do really useful things like INNER/LEFT/OUTER/CROSS/NATURAL JOIN or other multi-table operators.

  3. NSUserDefaults - if your data is very small and is just essentially key-value pairs, then you can probably throw it all into the NSUserDefaults object, which will persist it for you in the preferences file. However, even if your data is simple, NSUserDefaults might not be the best option if you have lots of it.

0

精彩评论

暂无评论...
验证码 换一张
取 消