Refléter le temps qui passe.
Dans une application il y a un code couleur qui change selon l'éloignement d'une deadline face à la doute courante et aussi un label qui dit clairement combien de temps il reste.
Quand on lance l'appli c'est juste mais comme la précision est la minute il se peut que l'affichage ne soit plus juste assez rapidement. De même si on laisse l'appli tourner pendant des jours sans la fermer, comme moi.
J'aimerai que le temps qui passe soit reflété dans l'app.
D'instinct je m'orienterai vers un NSTimer lancé toutes les minutes. Mais je coince un peu au niveau de l'archi, je ne peux pas faire ça dans le model. Je vais devoir itérer toutes les minutes toutes les entrées de ma table, c'est pas limite niveau perfs et mise en sleep mode de l'application ?
L'idéal serait de désactiver le timer si la fenêtre n'est pas active à mon avis...
Y'a une autre façon, plus propre, de faire ça ?
Réponses
Tu pourrais pas actualiser uniquement quand la vue apparait ?
C'est ce que je fais pour les temps de publications de mes flux rss et twitter : chaque tweet ou flux rss a sa date de parution, quand la vue apparait (par exemple la cell qui affiche la donnée avec le label qui affiche depuis combien de temps le rss a été publié), j'appelle une méthode qui calcule la durée. Le NSTimer ça te servirait dans le cas d'un compte à rebours ou chrono. Je présume que ton utilisateur aura pas tt le temps le nez sur l'iphone ?
ça n'est justement pas sur iPhone.
Mais je pense que je vais tourner avec le timer quand l'appli est active et arrêter le tout quand elle ne l'est pas.
ahh effectivement ça change tout
Dans ce cas je peux pas t'aider, à priori je dirais également un NSTimer actualisé à la précision que tu souhaites (ici la minute), ça me parait pas démentiel en terme de perf. Surtout que tu actualiseras uniquement les cellules de ta table qui sont visibles.
Moi je mettrais le mise à jour dans la partie Modèle avec un binding vers la Vue.