de question fondamentale sur la gestion de la mémoire iPhone:gestion de la mémoire iphone (de base)
que j'ai un viewController avec plusieurs sous-vues aussi contrôlées par viewControllers. Lorsque je supprime le viewController supérieur et libère l'instance - ce qui arrive à ses enfants? Y a-t-il aussi tous les objets contenus dans ce document? Lorsque je lance mon application dans des instruments, je ne reçois aucune fuite de mémoire. Mais la valeur de «toutes les allocations» augmente-t-elle? (Je suppose que cette valeur est la mémoire globale consommée par mon application?)
cela me laisse un peu confus. Lorsque je supprime une vue d'une vue en utilisant [self.view remove from superview], les propriétés de cette vue sont-elles supprimées de la mémoire ou sont-elles toujours présentes? Dois-je définir les propriétés sur zéro avant de les libérer? On dirait que je ne fais pas la différence entre un objet libéré et un objet qui a été libéré ... – Swissdude
Si plus d'une chose a conservé un objet, alors la libération ne libérera pas l'objet. Ce n'est que lorsque le nombre de retards tombe en dessous de celui que le dealloc est réellement fait. –
@Urs Il est également important de noter que [self.view removeFromSuperview] décrémentera le nombre de références sur la propriété view de votre UIViewController, mais cela n'affectera pas le nombre de références sur le UIViewController lui-même. – RedBlueThing