Pregunta

Cada vez que agrego un nuevo viewController, mi ObjectAlloc salta muy alto y nunca vuelve a bajar. Incluso después de llamar a removeFromSuperview. ¿Es esto 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];
    }
¿Fue útil?

Solución

La creación de instancias de una vista siempre crea muchos objetos. Mientras esta vista esté en la memoria o no se haya lanzado automáticamente, los objetos permanecerán asignados en la memoria. Por lo tanto, para responder a su pregunta, esto es normal.

Parece que está preocupado por el uso de la memoria y, si bien es importante observar las asignaciones de objetos para que no se demasiado , es más importante encontrar las fugas en la aplicación.

Algunos consejos de administración de memoria:
1) hacer carga lenta. Solo cargue sus vistas cuando el usuario las solicite, no todas al comienzo de la aplicación
2) elimine todo lo que pueda cuando ya no lo necesite. Esto significa hacer mucho trabajo en viewWillAppear y viewDidDisappear
3) aprenda sobre @properties y cómo se relaciona con el alquiler automático, y no use propiedades para todo.
4) Tan atractivo como es, evite la liberación automática y libere manualmente los objetos cuando ya no los necesite.

Otros consejos

probablemente se deba al hecho de que aún conserva el controlador de la vista en la clase. intenta liberar eso

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top