2010-04-04 5 views
2

Une autre question novice: Quelle est la meilleure façon de stocker des données dans une application Cocoa écrite en Obj-C? Par exemple si je veux créer une sorte de "quizzer" qui questionne l'utilisateur avec des questions pré-écrites (et écrites par l'utilisateur)? Comment stocker ces questions et réponses? Données de base?Question de stockage de données

Merci!

Répondre

3

Bien sûr, c'est Données de base!

Il traitera tout .. jeter un coup d'oeil ici: http://developer.apple.com/macosx/coredata.html

Il est une API complète qui peut gérer:

  • ORM entre les bases de données et la gestion du temps des objets
  • persistance
  • automatique outils de construction (comme un ER-éditeur)
  • c'est prêt hors de la boîte, vous n'aurez pas besoin de mettre en œuvre presque tout .. vous aurez déjà accès à votre da ta simplement en l'interrogeant les contrôleurs d'objets probablement cette solution

est surdimensionnée pour votre problème, mais vous apprendrez comment l'utiliser avec un cas simple, et je viendrai à portée de main dans l'avenir ..

+0

Ok. Je pensais à Core Data pendant un moment, et cela semblait plutôt compliqué, et je n'étais pas sûr de l'utiliser ... mais maintenant je vais l'utiliser à coup sûr. Merci d'avoir répondu à ma question! – Vervious

+0

+1 pour ce cas d'utilisation, Core Data est probablement le chemin à parcourir. –

3

Core Data est certainement une excellente option, comme l'a montré @Jack. Il y a aussi d'autres options.

  1. NSCoding - Vous pouvez faire vos objets de modèle sont conformes au protocole NSCoding (similaire à java.io.Serializable), ce qui signifie que vous seriez en mesure de les écrire directement aux fichiers. J'ai trouvé que c'est une excellente option quand je n'ai pas de grandes quantités de données à persister, et les données que je persiste a une structure relativement simple.

  2. SQLite - Si vos données sont très relationnelles, vous pouvez envisager d'utiliser directement une base de données (probablement SQLite). Core Data est un magasin d'objets, et bien qu'il gère des choses comme les relations entre les objets, il ne vous permet pas de faire des choses vraiment utiles comme INNER/LEFT/OUTER/CROSS/NATURAL JOIN ou d'autres opérateurs multi-tables. - Si vos données sont très petites et ne contiennent essentiellement que des paires valeur/clé, vous pouvez probablement tout jeter dans l'objet NSUserDefaults, qui le conservera pour vous dans le fichier de préférences. Cependant, même si vos données sont simples, NSUserDefaults pourrait ne pas être la meilleure option si vous en avez beaucoup.

+0

Wow, merci. Je n'ai jamais entendu parler de la moitié d'entre eux auparavant. Aussi: Dans Core Data, est-il possible "d'exporter" les données dans des fichiers externes? (pour d'autres applications "l'importer"?) Ou est-il déjà dans un état exportable? Je me demandais juste. – Vervious

+0

@ Nano8Blazex toute importation ou exportation doit être faite par vous, dans le code. –

+0

Je vois. Eh bien, tant que c'est possible, c'est bon! Merci. – Vervious

Questions connexes