Cette question est liée à la meilleure pratique lors de l'affichage d'une vue de table, donc s'il y a une meilleure façon de résoudre ce problème que ma solution proposée (dans la question), dites-moi.TableView utilisant deux tableaux simultanés comme source
J'ai une vue de table qui a un texte qui est contenu dans un NSArray de Dictionnaires comme source pour chaque texte de cellule. La vue table doit également afficher un UIImage dans la cellule du tableau. Chaque cellule aura un texte, mais certaines cellules ne contiendront pas UIImage.
Quelle est la meilleure approche à ce problème?
Actuellement, si un UIImage est disponible pour le texte, il est défini comme une clé dans le dictionnaire qui contient également le texte et affiché. En termes de gestion de la mémoire est-ce une mauvaise approche?
Alternativement, est-il sensé d'utiliser deux NSARrays qui se correspondent (par exemple, ils ont tous deux le même nombre d'éléments et l'objet à l'index 1 du premier tableau correspondrait à l'objet à l'index 1 du second array) et juste sauvegarder un NSNull ou quelque chose de similaire dans le second tableau (image) qui n'a pas toujours un objet qui doit être affiché?
C'est tout, merci pour toute contribution!
Oui - le problème de mémoire est une préoccupation - ils ne sont pas sauvegardés localement lors de la première vue plutôt récupérés d'un serveur, puis sauvegardés localement. TableViewReusableCell va-t-il libérer automatiquement l'objet image lorsque la cellule est réutilisée? – Tyler
@Tyler: Lorsque vous affectez une nouvelle image (ou 'nil' comme image), l'ancienne UIImage sera libérée (et libérée si rien d'autre ne la retient). De même, si un UIImage a été créé avec le contenu d'un fichier, lorsque l'application reçoit un avertissement de mémoire, l'objet UIImage peut libérer la mémoire utilisée pour contenir les données d'image; il sera ensuite recharger à partir du fichier la prochaine fois qu'il est nécessaire. S'il n'y a pas de fichier alors il ne peut pas le faire, bien sûr, et vous devez vous assurer de ne pas supprimer le fichier jusqu'à ce que l'UIImage qui l'utilise soit libéré. – Anomie