Question

Dans le développement de ma première application iPhone grave (Ce qui signifie que je voudrais obtenir réellement sur l'AppStore), il me fallait une bonne façon de représenter mes données. Au lieu d'aller avec des données de base, je (bêtement, je crois) a décidé d'utiliser des classes pour représenter mes données.

J'ai créé trois classes, MMDot, MMShowMovement et MMShow. Le MMShowMovement détient des instances de la classe MMDot dans un tableau, comme MMShow détient les instances de MMShowMovement. Comme un moyen Sounded agréable de le faire, chaque classe a beaucoup de logique qui doit aller avec elle, donc je pensais que les classes semblait être une bonne façon d'aller de représenter toutes ces données.

Ma question est, est-il un moyen facile d'enregistrer les instances de ces classes afin que je puisse restaurer les données après l'application est rouverte? J'ai fait des applications sur OS X en utilisant un NSKeyedArchiver, serait-il similaire sur l'iPhone? Serait-il plus facile de commencer à nouveau en utilisant à la place Core Data (Ces objets sont très complexes, en particulier MMDot avec environ 15 variables d'instance, maintenant que je regarde, peut-être pas ce complexe)?

Je suis vraiment à une perte ici.

Était-ce utile?

La solution

Vous pouvez absolument utiliser NSKeyedArchiver persister vos objets. Je suis un fan de ces deux méthodes, la décision est la plupart du temps avec vos besoins d'application. Je ne pense pas que ce sera beaucoup de travail à remodeler vos objets CoreData. Sans savoir quoi que ce soit au sujet de votre demande, je dirais que si vous faites simplement la persistance d'un modèle simple, vous ne pouvez pas besoin de base de données, si vous avez des relations complexes et en train de lire / persistance des données fréquemment au cours d'une session d'application de base de données est probablement la façon aller.

Autres conseils

Si vous avez beaucoup d'instances d'objets, vous êtes probablement mieux à l'aide des données de base - il aidera les choses de cache, vous aider avec des requêtes pour obtenir des ensembles spécifiques d'objets, et ainsi de suite. KeyArchiving est vraiment beaucoup plus utile si vous enregistrez hors une poignée de cas, mais ont quelques inconvénients -. En particulier, il est plus difficile de traquer les fuites de mémoire des objets non archivés

Les données de base peut également faire la pagination des résultats pour vous aussi, de sorte que vous n'êtes pas dans le contenu récupérez de l'Entre d'un grand tableau si vous n'avez pas besoin.

Je regardais dans sérialisation mes cours, l'autre jour et je suis allé à l'utilisation NSUserDefaults. Je viens de donner toutes les entrailles de mes objets une clé unique en fonction de l'objet. Semblait travailler vite pour moi.

A écrit un blog à ce sujet ici: http: //technolojiadev.blogspot. com / 2009/12 / serialize-this.html

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top