こんにちは、私はアプリケーションを作成し、シミュレーターで実行し、iPhone は正常に動作し、それを alnalize してメモリ リークを取り除きます。
しかし、今日、2番目のビューに行くときにシミュレーターでアプリを実行しましたが、ビューは正常に表示されますが、2番目のビューに戻ると、メッセージを表示せずにクラッシュします...
悪いエクセスですか?そうは思わない...
こんにちは、私はアプリケーションを作成し、シミュレーターで実行し、iPhone は正常に動作し、それを alnalize してメモリ リークを取り除きます。
しかし、今日、2番目のビューに行くときにシミュレーターでアプリを実行しましたが、ビューは正常に表示されますが、2番目のビューに戻ると、メッセージを表示せずにクラッシュします...
悪いエクセスですか?そうは思わない...
わかりました、これを試してください
ここで appDelegate オブジェクトを解放しないでください。アプリ全体の共有コピーです。super dealloc の前にすべてのオブジェクトを解放します。
- (void)dealloc {
//[appDelegate release];//here crash
[staticImageDictionary release];
[siteData release];
[newdata release];
[connection release];
[webData release];
[activity release];
[super dealloc];
}
MKMapView のデリゲートを持つビューコントローラーをリリースしていると思いますが、MKMapView デリゲートを持つビューコントローラーを解放しないでください。メモリリークを修正していたときにそのデリゲートを解放したと思います
Objective C では、通常、dealloc メソッドで既に "release" されているオブジェクトを実現すると、不適切な超過が表示されます。どのオブジェクトがすでにリリースされているかを追跡するには、NSZombieEnabledを使用します。