次のように、TableViewController の didSelectRowAtIndexPath メソッド内からビュー コントローラーをナビゲーション コントローラーのスタックにプッシュしています。
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];
最後の行のコメントを外すと、アプリがクラッシュしてエラーが返されます。
-[CALayer release]: message sent to deallocated instance 0xd4f860
もう少し掘り下げてみると、クラッシュは MyViewController の dealoc メソッド内の [super dealoc] への呼び出しにさらに絞り込むことができることがわかりました。"[super dealoc]" のコメントを外すと、クラッシュしなくなります。
これ以上絞り込めなくて困っています。「スーパー」はUIViewControllerクラスであり、そのdealocメソッドをさらに調査することはできません...できますか? 0xd4f860 が何を指していたのかを正確に確認する方法があるかもしれませんが、その方法はわかりませんか? 何か案は?