2010-10-05 4 views
0

Assez nouveau pour iOS dev, je sens que j'ai une bonne connaissance des bases. Je pensais à une application que je voudrais faire et les étapes, les composants nécessaires ... et je ne sais pas comment ou quelle est la meilleure méthode pour enregistrer l'entrée de l'utilisateur et le récupérer.iOS/ObjC, stocker l'entrée de l'utilisateur et le récupérer

Un exemple étant (je ne prévois pas faire cela, mais il illustre ce que je veux savoir), disons une simple liste de choses à faire, il a NSTableView qui est peuplé à partir de NSMutuableArray, pour commencer, il est vide comme l'utilisateur n'a rien ajouté. Une fois qu'un élément est ajouté au tableau, la table se recharge grâce à -reloadData. L'élément à faire est affiché dans le tableau. Idéal pour cette session ... mais pas quand l'application est rouverte.

J'imagine que j'ai besoin de stocker la matrice, puis de la recharger lorsque l'application s'initialise, est-ce correct?

Ou existe-t-il une autre meilleure méthode?

Répondre

3

Si vous débutez. La meilleure solution consiste à utiliser les données de base pour enregistrer et afficher vos données. Tu me remercieras à la fin.

http://developer.apple.com/library/ios/#documentation/cocoa/Conceptual/CoreData/cdProgrammingGuide.html#//apple_ref/doc/uid/TP30001200-SW1

Tutoriels

http://www.raywenderlich.com/934/core-data-tutorial-getting-started http://developer.apple.com/cocoa/coredatatutorial/index.html http://themikeswan.wordpress.com/2009/05/22/7/

Faites une recherche Google il y a beaucoup de ressources.

+0

Merci, pour une raison quelconque, je pensais CoreData était seulement OSX, les livres que je lisais omettez de le mentionner. – S1syphus

+0

Ils ont probablement été écrits avant l'introduction de CoreData dans iOS dans la version 3.0. – Jasarien

+1

Si vous démarrez Xcode et lui demandez de créer une nouvelle application basée sur la navigation et que vous cochez la case "Utiliser les données de base", l'application squelette qu'il vous fournit est d'environ 50% du chemin. – JeremyP

2

En plus de la réponse de Jordan, la plupart du temps pour l'exhaustivité afin que vous compreniez vos options. Vous avez au moins deux autres possibilités:

Ces deux concepts sont plus faciles à comprendre qu'une base de données relationnelle appropriée et qui sont des choses plus simples à considérer D'autant plus que les listes TODO ne sont pas susceptibles de contenir de grandes quantités de données

Listes de propriétés t et le plus basique en termes de fonctionnalité. Il vous permet simplement de stocker des primitives, mais c'est bon si votre liste TODO est juste une collection de chaînes.

La sérialisation à l'aide de NSCoding est plus puissante, mais nécessite plus de travail de la part du développeur. Avec NSCoding, vous pouvez créer vos propres codeurs/décodeurs pour vos objets métier, ce qui vous permet de conserver l'intégralité de l'état. Ce serait bien si vous avez votre propre Todo avec beaucoup de propriétés, comme le titre, la priorité, complète par date, etc

+0

Celles-ci sont valides, mais lorsque vous passez d'une liste TODO à quelque chose de plus compliqué, vous voudrez savoir comment Core Data facilite votre travail en tant que programmeur. Mon deuxième choix serait NSCoding. Mais NSCoding est plus pour le programmeur intermédiaire. Listes de propriétés, vous voulez savoir maintenant, juste pour savoir comment lire et stocker les plistes.Mais encore une fois, si vous débutez, Core Data est la solution. Vous apprendrez beaucoup sur la programmation en cours de processus. – Jordan

+0

@Jordan - Je ne pensais pas que ta réponse était fausse, je viens d'énumérer les options :) – willcodejavaforfood

+0

ne voulait pas avoir l'air défensif;) – Jordan

Questions connexes