2010-10-11 20 views

Respuesta

3

Liberar objetos es su propia responsabilidad, por lo que debe liberar el controlador de vista a sí mismo, ya sea después de llamar presentModalViewController, o en algún momento posterior (no se recomienda)

Por ejemplo:

MyController *controller = [[MyController alloc] init]; 

[self presentModalViewController:controller animated:YES]; 

// "controller" is automatically retained, so you can call release right away  

[controller release]; 

Calling dismissModalViewController más adelante liberará el controlador retenido automáticamente.

+0

Phillip - gracias. Esta línea de código: [[Mycontroller alloc] initwithNib ... ¿cuál es el conteo retenido en este objeto - 1 o 2? – GuybrushThreepwood

+0

Será uno, pero no importa. Piense en la propiedad del objeto, no retenga el conteo. Usted siempre es responsable de liberar todo lo que haya asignado o retenido. Siempre. –

+0

En el ejemplo anterior, ¿por qué se retiene automáticamente el "controlador"? Estoy confundido de cómo se puede asignar el controlador en la línea uno y luego liberar inmediatamente - ¿no lo deja con un conteo de retención de 0 que lo vaciaría? Gracias. – GuybrushThreepwood

Cuestiones relacionadas