0

Mon tableView ne se chargeait pas car tableView:cellForRowAtIndexPath: n'était pas appelé. Les messages NSLog que j'ai écrits à l'intérieur tableView:cellForRowAtIndexPath: n'apparaissaient pas dans la console. J'avais un weak NSArray @property appelé listOfItems. Quand je l'ai changé à strong, la tableView a finalement montré son contenu. Est-ce que quelqu'un pourrait clarifier si tableView:cellForRowAtIndexPath: n'était pas appelé parce que NSArray était faible. Y at-il un lien entre la propriété listOfItems et la méthode tableView:cellForRowAtIndexPath: appelée?tableView: cellForRowAtIndexPath: non appelé car le tableau est vide?

+0

pouvez-vous poster la méthode '' numberOfSectionsInTableView: ''? –

+0

Je pense que vous voulez dire numberOfRows, et même ainsi, ce serait sans importance. –

+0

pouvez-vous le poster pour moi? Je veux savoir comment faites-vous le '' numberOfRowsInTableView'' parce que j'ai le même problème une fois et l'erreur était int '' numberOfRowsInTableView'' –

Répondre

3

Aucun objet ne faisait référence au tableau. Votre contrôleur de vue avait une référence, mais ce n'était pas fort. Cela signifie que vous ne vous en souciez pas si vous l'enlevez de la mémoire, vous n'en avez pas besoin pour rester. Dans ce cas, puisque votre table s'appuie sur les données du tableau, vous ne voulez pas qu'elles soient supprimées de la mémoire: vous voulez qu'elles restent aussi longtemps que la table reste. Pour ce faire, vous créez une référence forte, qui s'assure que cet objet n'est pas retiré de la mémoire jusqu'à ce pointeur (votre propriété, dans ce cas) ne pointe plus vers lui.

+0

Belle description, +1 –

Questions connexes