1

SourceListViewControllerというカスタムviewControllerがあり、それをUINavigationControllerに追加します。その後、そのビューがiphoneアプリのウィンドウに追加されます。SourceListViewControllerをUINavigationControllerに渡した後、sourceListViewControllerを解放します。

SourceListViewController *sourceListVC = [[SourceListViewController alloc] initWithNibName:@"SourceListViewController" bundle:nil];
UINavigationController *navigationController = [[[UINavigationController alloc] initWithRootViewController:sourceListVC] autorelease];
[sourceListVC release];

これを行うと、ビューが電話にロードされた後にアプリがクラッシュします。最後の行をコメントアウトすると、アプリは正常に動作します。initWithRootViewControllerはsourceListVCのコピーを保持することになっていますか?

4

1 に答える 1

8

あなたはnavigationControllerを自動解放しています。したがって、navigationController が自動解放されると (これはおそらく次の実行ループで発生します)、sourceListVC も自動解放されます。

于 2009-06-28T15:40:45.277 に答える