Question

Chaque fois que j'ajoute un nouveau viewController, mon ObjectAlloc monte très haut et ne redescend jamais. Même après avoir appelé removeFromSuperview. Est-ce normal?

if((UIButton *) sender == gameArcadeBtn) {
        GameArcade *gameArcadeController = [[GameArcade alloc] 
                              initWithNibName:@"GameArcade" bundle:nil]; 
        self.gameArcade = gameArcadeController; 
        [gameArcadeController release]; 
        [self.view insertSubview:gameArcadeController.view atIndex:1];
    }
Était-ce utile?

La solution

L’instanciation d’une vue crée toujours de nombreux objets. Tant que cette vue est en mémoire ou n’a pas été libérée automatiquement, les objets restent alloués en mémoire. Donc, pour répondre à votre question, ceci est normal.

On dirait que vous êtes inquiet à propos de l'utilisation de la mémoire et qu'il est important de regarder l'allocation d'objet pour éviter qu'il ne reçoive trop , il est plus important de rechercher les fuites de votre application.

Quelques conseils de gestion de la mémoire:
1) faire le chargement paresseux. Ne chargez vos vues que lorsque l'utilisateur les demande, pas toutes au début de l'application.
2) supprimez tout ce que vous pouvez éventuellement lorsque vous n'en avez plus besoin. Cela signifie faire des tonnes de travail dans viewWillAppear et viewDidDisappear
3) en savoir plus sur @properties et son lien avec la libération automatique, et ne pas utiliser les propriétés pour tout.
4) Aussi attrayant que cela puisse être, évitez la libération automatique et libérez manuellement les objets lorsque vous n'en avez plus besoin.

Autres conseils

Cela est probablement dû au fait que vous conservez toujours le contrôleur de la vue dans la classe. essayez de libérer cette

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top