Me preguntaba cómo funciona el autorelease en el iPhone. Pensé que una vez que envíe una liberación automática a un objeto se garantiza que se conserve hasta que se haya enviado el autorelease
hasta el final del bloque. ¿Es eso correcto?Autorelease scope
estaba inicializando una vista desde una ONI en el applicationDidFinishLaunching
, como a continuación:
(void)applicationDidFinishLaunching:(UIApplication *)application {
loginViewController = [[[LoginViewController alloc] initWithNibName:@"LoginView" bundle:nil] autorelease];
[window addSubview: [loginViewController view]];
[window makeKeyAndVisible];
}
y la vista no se presentó en absoluto, todo lo que había en la pantalla fue el UIWindow
Ahora, una vez que eliminado el autorelease
desde el final de la inicialización del controlador, todo transcurrió sin problemas a partir de ese momento.
¿De qué se trata?
Cheers, K.
La ventana debe conservar la vista. (Aunque no tengo acceso a la documentación) –
Pero cuando el controlador de vista se desasigna, elimina la vista que administra de su supervista. –
Precisamente lo que dijo Don. –