Por que isso é excessivo? UINavigationController / UITableview

Eu estou empurrando um controlador de exibição para a pilha do meu controlador de navegação de dentro do método didSelectRowAtIndexPath do meu TableViewController da seguinte maneira:

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];

Se eu descomentar essa última linha, o aplicativo trava ao retornar com um erro:

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

Indo um pouco mais longe, acho que a falha pode ser reduzida à chamada para [super dealoc] dentro do método dealoc do MyViewController. Ao descomentar "[super dealoc]", não falhamos.

Estou tendo problemas para restringir isso ainda mais. "super" seria a classe UIViewController e eu não posso mais investigar esse método dealoc ... posso? Talvez haja uma maneira de ver exatamente o que 0xd4f860 estava apontando, mas não sei como? Alguma ideia?

questionAnswers(1)

yourAnswerToTheQuestion