私は私のプロジェクトの初心者ですが、一部のビューでクラッシュしました。xcodeのRUNのサブアイテムにあるAnalyzeの助けを借りてチェックしました。ここでリークオブジェクトである問題リストのいくつかを取得しましたここでリークオブジェクトを表す2種類の画像を追加しました問題が何が起こったのか理解できません誰か助けてください
私は私のプロジェクトの初心者ですが、一部のビューでクラッシュしました。xcodeのRUNのサブアイテムにあるAnalyzeの助けを借りてチェックしました。ここでリークオブジェクトである問題リストのいくつかを取得しましたここでリークオブジェクトを表す2種類の画像を追加しました問題が何が起こったのか理解できません誰か助けてください
あなたcreate
やretain
何かのオブジェクトは明らかですが、それを解放するのを忘れてください。
2つの画像から、appDelegate.Notify_array
リリースなしで割り当てます。がの場合Notify_array
はstrong-property
、のautorelease
ときに割り当てられますalloc
。
また、receivedData
リリースなしで保持します。
ですべてのオブジェクトを解放するかもしれませんdealloc
が、命名スタイルは適切ではありません。インスタンス変数に1つの下線プレフィックスを付けることをお勧めします。
メモリリークはクラッシュを引き起こしませんが、ワイルドポインタへのアクセスはクラッシュを引き起こします。あなたのプロジェクトのクラッシュのために、私はあなたがNSZombie Detect
それを捕まえるために開くことを勧めます。
XCodeアナライザーは、潜在的なリークを見つけるために使用されるだけで、クラッシュが発生した理由を正確に知ることはできません。スクリーンショットでは、allocステートメントのどこにも接続が解放されていないと言っています。スクリーンショット2では、allocステートメントのどこにもappDelegate.Notify_arrayが解放されていないと言っています。実行パスは青い矢印で示されています。
対応するリリースステートメントを追加します。このアナライザーのリークはなくなります。
例外ブレークポイントを追加し、xcodeでゾンビオブジェクトを有効にします。これは、ほとんどのクラッシュを見つけるのに役立ちます。xcodeコンソールに記録されたエラーメッセージも参照してください。