iOS 開発で、EXC_BAD_ACCESS とさよならするための6つのルール

このエントリーをはてなブックマークに追加
はてなブックマーク - iOS 開発で、EXC_BAD_ACCESS とさよならするための6つのルール

2012/3/22 いくつか修正、加筆しました。
追記もご覧下さい:iOS 開発で、EXC_BAD_ACCESS とさよならするための6つのルール [追記] カプセル化について « Zero4Racer PRO Developer’s Blog
対象がiOS4以上の場合は、ARCを使用するのもオススメです。iOS 5 公開記念! Objective-Cのメモリ管理の革命、 ARC 超入門(サンプルはgitHubに公開) « Zero4Racer PRO Developer’s Blog をご覧下さい。

@Awaresoft さんのこの記事が、ほとんどすべての疑問に答えています。とてもよい記事なので合わせてご覧下さい。プロパティに対応するインスタンス変数の命名規則について – Awaresoft

iOS プログラミングでのメモリ管理の基本

iPhone開発で主に使用される言語は、Objective-C 2.0 です。とくにiPhoneで使用されるObjective-Cには、ガベージコレクションが搭載されていないため、Javaや、C#などの言語のように自動でメモリの確保、解放を行ってくれないため、プログラマがメモリの確保、解放を管理してあげる必要がある必要があります。
その反面、使用するメモリをコントロール出来るのでiPhone上の限られた(少ない)メモリを効率的に使用することが出来ます。しかし、これは、メモリ管理に慣れていないプログラマにとっては至難の作業です。
EXC_BAD_ACCESSというエラーは、あるメモリにアクセスしようとしたが、そのメモリ領域にあったデータは既に解放されていて、何も見つかりませんでしたという、致命的なエラーです。このエラーは、シンプルなプログラムだと簡単に原因を見つけられるのですが、複雑に入り組んだプログラムになると、探すのが非常に難しく、小一時間、私の場合最長半日、原因解明に費やしたことがあります。EXC_BAD_ACCESSが解決出来ずに、もう、iPhoneアプリ作成やめてやれ!と思った事も多少なりとも有りました。この記事で、EXC_BAD_ACCESSエラーを出しにくくする、また対処しやすくするために私が行っている対策方法を記します。