Objective-CTweetこんにちは。iOS用アプリを作成していると、予期しないバグが発生することが多々ありますが、その原因として多いのが「メモリ警告」です。メモリ警告が発生すると、非表示状態のviewが破壊されるため、開発者の意図しない動作を引き起こす事があります。この状態をテストするには、iOSシミュレータの「メモリ警告をシミュレート」機能を使うことができますが、発生させるタイミングは開発者次第で尚且つショートカットキーも無い(たぶん)ため、なかなか効率的に活用することができません。これを解決するためのツールがMemoryWarningSenderです。これを利用すれば、iOSシミュレータの実行中に定期的にメモリ警告を発生させることができるため、想定外のバグの発見につなげることができます。MemoryWarningSenderは、ブログ「ゆめ技」で、ちきん(@mokemokechicken)さんが作成し公開しています。http://yumewaza.yumemi.co.jp/2012/03/memorywarningsender_in_ios_simulatorios.htmlこの記事を読めば使い方はわかりますが、こっちにも簡単に記述しておきます。インストールSIMBLのインストールiOSシミュレータを機能拡張するために、SIMBLが必要になります。http://www.culater.net/software/SIMBL/SIMBL.php上記URLからSIMBL-{バージョン番号}.zipをダウンロードし、解凍後にSIMBL-{バージョン番号}.pkgをインストールします。MemoryWarningSenderのインストールhttps://github.com/mokemokechicken/MemoryWarningSender上記URLでgithub登録されています。「ZIP」リンクからダウンロードし、解凍するとMemoryWarningSender.pkgが入っているので実行してインストールします。使い方iOSシミュレータを起動してメニューの「ハードウェア」を開くと、「メモリ警告を繰り返し送る」が追加されています。5秒毎、15秒毎、60秒毎の選択肢があるので、どれか一つを選択します。あとはこの状態でアプリをぐりぐり実行させるだけです。定期的にメモリ警告が発生するので、想定外のバグが発見できるかもしれません。備忘録も兼ねて・・・ViewControllerからViewを生成する場合、大まかに以下のような流れになります。ViewControllerのviewDidLoadの呼び出ししかし、メモリ警告でviewが破壊されると、1の初期化メソッドが呼び出されず2と3だけが実行されることになります。そのため、初期化メソッド内でviewの操作を行っているとメモリ警告後におかしな動きになってしまうことになります。これを踏まえて、ViewControllerの初期化メソッドでviewの操作をしないことviewの操作をしたい場合はviewDidLoadで行うことこの2点を守りながらコーディングすればメモリ警告によるバグはだいぶ防げるはずです。byスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。