Domanda

Ogni volta che aggiungo una nuova viewController il mio ObjectAlloc salta molto in alto e non scende mai più. Anche dopo aver chiamato removeFromSuperview. È normale?

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

Soluzione

L'istanza di una vista crea sempre molti oggetti. Fintanto che questa vista è in memoria o non è stata rilasciata automaticamente, gli oggetti rimarranno assegnati in memoria. Pertanto, per rispondere alla tua domanda, questo è normale.

Sembra che tu sia preoccupato per l'utilizzo della memoria e mentre è importante guardare gli oggetti allocati in modo che non ottengano troppo è più importante trovare le perdite dell'app.

Alcuni consigli per la gestione della memoria:
1) eseguire il caricamento lento. Carica le tue visualizzazioni solo quando l'utente le richiede, non tutte all'inizio dell'app
2) rimuovi tutto ciò che puoi quando non ne hai più bisogno. Questo significa fare tonnellate di lavoro in viewWillAppear e viewDidDisappear
3) scopri @properties e come si relaziona con il rilascio automatico, e non usare le proprietà per tutto.
4) Per quanto attraente, evita il rilascio automatico e rilascia manualmente gli oggetti quando non ne hai più bisogno.

Altri suggerimenti

questo è probabilmente dovuto al fatto che stai ancora mantenendo il controller della vista nella classe. prova a rilasciarlo

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top