2011-12-07 6 views
1

navigationControllerのリリースで問題があります。私はポイントを持つマップビューを持っています。マップポイントをクリックすると、新しいdetailViewControllerが詳細に作成されます。すべてうまく動作しますが、私は戻って私のアプリをmapControllerに戻し、クラッシュします。私がすべてのリリースをコメントしてもうまく動作しますが、mapControllerはリリースではありません。それが割り当て解除されたときFavoriteDetailViewControllerでナビゲーションコントローラリリースクラッシュアプ​​リ

FavoriteDetailViewController *detailViewController = [[FavoriteDetailViewController alloc] 
initWithNibName:@"FavoriteDetailViewController" bundle:nil favoriteID: 
[[(DisplayMapAnnotation*)view.annotation detailID] intValue] favoriteName: 
[(DisplayMapAnnotation*)view.annotation title] favoriteCompany: 
[(DisplayMapAnnotation*)view.annotation subtitle] favoriteLocation: 
[(DisplayMapAnnotation*)view.annotation detailLocation] favoriteHtmlString:nil 
favoriteJobIndex:0 favoriteTotalJobs:1 favoriteGeoLat:detailArrayData.geoLat 
favoriteGeoLng:detailArrayData.geoLng favoriteFullUrl:detailArrayData.fullUrl 
favoriteExportUrl:detailArrayData.exportUrl favoriteIdent:1]; 

[self.navigationController pushViewController:detailViewController animated:YES]; 

[detailViewController release]; 
+0

私もこの問題に直面しました。私はナビゲーションコントローラをリリースしないだけで解決しました。最高の解決策ではありませんが、それは私のために働きます。 –

答えて

0

何かがクラッシュする: はここに私のコードです。 deallocメソッドを注意深く見てください。また、FavoriteViewControllerのデリゲートをnilに設定してください。

+0

次の質問がありますか?多分愚かな、しかし私は知る必要があります。ナビゲーションコントローラでdeallocメソッドを呼び出すタイミングは?最初はdetailControllerを開いたときにメモリが使用されるので、重要です。戻るボタンを押すと元に戻りますが、メモリはまだ使用されています。私は再びそれを開くと、メモリの次の部分を使用します。私が数回繰り返したとき、私は大量のメモリを使いました。私の意見では、deallocメソッドは決して呼び出されません – mysho

+0

私はなぜこれを知っていませんでしたが、これを作ったときは:[self.navigationController pushViewController:detailViewController animated:YES]; detailViewController = nil; [detailViewControllerリリース];それは正常に動作します...しかし、私はまだ上記の問題を抱えている – mysho

関連する問題