Ma question peut sembler un peu confuse, mais je n'ai pas trouvé de meilleur titre. Je m'explique : Je développe une application iOS qui utilise CoreData pour stocker des objets et les rendre persistants. Je veux afficher les objets stockés dans un UITableView
. Chaque objet contient un date . Je veux que mon tableau affiche les objets triés par date, et que chaque mois soit une section dans ce tableau.
+--------------------+
+--- March 2016 ---+
+--------------------+
+ - Entry 1 +
+ - Entry 2 +
+--------------------+
+-- February 2016 --+
+--------------------+
+ - Entry 1 +
+ ..... +
.
.
.
.
+--------------------+
Étant donné que la vue de la table doit connaître le nombre de lignes et de sections avant les données sont affichées, j'ai besoin de savoir au moins combien d'entrées il y a dans mon stockage CoreData.
Approche 1
Je ne récupère que les dates de chaque objet et j'indique à la vue tableau le nombre de lignes qu'elle doit afficher. Lorsque la méthode de la source de données cellForRowAtIndexPath
est appelé, je récupère les données pour les objets dont j'ai besoin. CoreData est-il suffisamment rapide pour faire cela, ou l'utilisateur doit-il attendre un moment jusqu'à ce que les données soient chargées ?
Approche 2
Je récupère tout de mon stockage CoreData et je "stocke" les objets dans mon fichier ViewController
qui contient la vue du tableau. Il est possible qu'il faille beaucoup de mémoire pour conserver chaque objet en mémoire.
Approche 3 ( chargement paresseux ?)
Je récupère les 10 à 20 derniers objets de CoreData. Lorsque l'utilisateur fait défiler le tableau et qu'il est sur le point d'atteindre la dernière entrée, je récupère les 10 à 20 entrées suivantes et je les affiche. Qu'en est-il des entrées que j'ai chargées au début ? Dois-je les conserver en mémoire ? Ou les récupérer à nouveau si l'utilisateur fait défiler le tableau jusqu'en haut ?
J'espère que vous pourrez m'aider et que quelqu'un a de l'expérience dans ce domaine. Je vous remercie !