Core Data et usage

Salut à  tous,



j'aimerai votre aide et/ou avis sur mon projet.



Je vous explique l'écran principal de celui-ci. J'ai un UIsegmentedControl contenant 4 segment. J'ai sous celui-ci un UITableview. J'ai un serveur sur lequel j'ai une API qui me renvoi des infos en json.





Lorsque je change de segment, je vais récupérer sur le serveur les informations correspondantes (suivant le segment) et je reload mon tableview. Pour le moment je fait cela à  "la volée", c'est à  dire que je récupère mon json, je créé des objets (suivant un model créé) et j'affiche certaines propriétés dans la cellule du tableview. De plus, je charge mon json progressivement. Lorsque l'utilisateur scroll jusqu'au bas du tableview, une nouvelle requête est effectuée pour récupérer les 20 items suivants, les ajoutés à  mon mutableArray et ensuite je fait un reload de mon tableview pour afficher la totalité de mes éléments déjà  récupérés.



Le nombre d'éléments récupérable pour chaque segment peut allé à  plus de 400.

Actuellement, à  chaque "viewdidload" de mon viewcontroller, je recommence l'opération de récupération. Je pense que c'est la que pourrait être utile coreData...



Ma question (enfin !) :



En quoi CoreData pourrait être utile dans mon cas? et qu'est ce que ça pourrait améliorer dans la gestion de mes données?



Merci

Réponses

  • Il me semble, mais je crois que Yoann pourra éventuellement te le confirmer, qu'il existe un persistent store (Core data donc) spécialement adapté pour les structures de données de type Json (entre autre).

    Maintenant je ne sais pas si c'est utile dans ton cas... (ça aide pas mais c un soupçon de début de réponse :-).
  • tout soupçon de réponse est bon à  prendre image/smile.png' class='bbc_emoticon' alt=':)' /> merci
  • Il y a effectivement quelques projets (Du plus avancé au moins avancé : REST Kit, AFIncrementalStore, ObjectiveREST) qui permettent de lier une API REST JSON à  une base CoreData.



    Mais ce genre de truc c'est pour du gain de temps quand on fait très souvent du REST + CoreData, dans ton cas il faudrait déjà  mettre à  plat ton workflow.



    Sur le principe, oui CoreData est toujours intéressant quand il y a des bases de données de type graphe d'objet, c'est un peu moins intéressant quand il est question de faire une liste ordonnée d'objet d'un seul type (du SQLite serait plus performant ici).



    Donc tout dépend vraiment de la complexité de ton modèle et de tes habitudes de dev.



    Personnellement j'ai horreur du SQL, je préfère donc toujours utiliser CoreData pour mes bases, quitte certaine fois à  développer un Persistant Store fait maison pour optimiser la partie requête + stockage (C'est ce qui a donnée naissance à  ObjectiveREST, mais le projet est en pause pour le moment, pas trop le temps de le finir malheureusement).
  • Merci, j'avais commencé à  utilisé SQLite (avec le wrapper FMDB), du coup je vais m'en tenir à  ça. Mais j'essaierai dans mon prochain projet CoreData, ça à  l'air performant image/smile.png' class='bbc_emoticon' alt=':)' />
Connectez-vous ou Inscrivez-vous pour répondre.