¿Por qué es esta liberación excesiva? UINavigationController / UITableview

Estoy presionando un controlador de vista en la pila de mi controlador de navegación desde dentro del método didSelectRowAtIndexPath de TableViewController, así:

MyViewController *myViewController = [[MyViewController alloc] initWithNibName:@"MyViewController" bundle:nil];
MyAppDelegate *appDelegate = (MyAppDelegate *)[[UIApplication sharedApplication] delegate];
MyObject *myO = (MyObject *)[appDelegate.myOs objectAtIndex:indexPath.row];
myViewController.amount = myO.amount;
[self.navigationController pushViewController:myViewController animated:YES];
[myViewController release];

Si elimino el comentario de la última línea, la aplicación se bloquea al regresar con un error:

-[CALayer release]: message sent to deallocated instance 0xd4f860

Cavando un poco más, encuentro que el bloqueo puede reducirse aún más a la llamada a [super dealoc] dentro del método dealoc de MyViewController. Al descomponer "[super dealoc]" no chocamos.

Estoy teniendo problemas para reducir esto aún más. "super" sería la clase UIViewController y no puedo seguir investigando ese método dealoc ... ¿puedo? Tal vez haya una forma de ver qué estaba señalando exactamente 0xd4f860 pero no sé cómo. ¿Algunas ideas?

Respuestas a la pregunta(1)

Su respuesta a la pregunta