De acuerdo con Apple, han mejorado la administración de la memoria interna para tener las mismas vistas que las ganancias logradas al destruir cosas en viewWill/DidUnload
son mínimas. Además, tienen datos que sugieren que muchas aplicaciones fallan porque las aplicaciones no manejan adecuadamente esas notificaciones, y hacen "otras" cosas no asociadas con la descarga de la vista.
Finalmente, una advertencia de memoria ahora se verifica como la primera y única advertencia que recibirá antes de que su aplicación finalice debido a la poca memoria, por lo que es realmente el lugar adecuado para manejar problemas de memoria.
Así que, básicamente, simplemente elimine sus métodos viewWillUnload
y viewDidUnload
. Maneje problemas de memoria en didReceiveMemoryWarning
y cualquier otra administración de controlador de vista en los lugares apropiados.
EDITAR
¿Puedo preguntar: ¿cuáles son esos "lugares apropiados"? Solía usar ViewdidUnload en ciertas situaciones donde la vista [Will/Did] desapareció era no del todo adecuada. Como ir más abajo en la pila de controladores de navegación . ¿Te importaría profundizar en eso? - Dan1one
Eso depende. Sé que eso no es lo que quieres escuchar, pero es la verdad :-)
En general, debes evitar la asimetría. Por lo tanto, debe "deshacer" una operación utilizando el método simétrico del que "hizo" el original. En general, debería poder hacer todo el trabajo de tipo viewDidUnload
en didReceiveMemoryWarning
y dealloc
.
Esto realmente no debería causar un cambio, porque tenía que duplicar la mayor parte de ese código en ambos lugares de todos modos.
No sé a qué te refieres con "ir más abajo en la pila del controlador de navegación", por lo que tendrás que aclarar ese ejemplo para que yo proporcione una respuesta útil.
Uno de los problemas con el uso de viewDidDisappear
y viewDidAppear
fue que era difícil saber cuándo aparecía la vista porque en realidad estaba apareciendo, o porque una vista que estaba encima desaparecía ... haciendo que apareciera .Se supone
Estas piezas de API para ayudarle a resolver esos problemas:
- (BOOL)isMovingFromParentViewController
- (BOOL)isMovingToParentViewController
- (BOOL)isBeingDismissed
- (BOOL)isBeingPresented
Lo que está utilizando actualmente para viewDidUnload en su aplicación? –