タグ

iPhoneアプリとObjective-Cに関するwakeari_comのブックマーク (2)

  • iOSアプリ開発のメモリ管理で気をつけること - A Day In The Life

    Objective-C での開発にだいぶ慣れてきたのですが、いまだメモリ管理まわりでハマることが多いのでまとめてみました。 メモリを確保してから解放するまでの流れ メモリを確保してから解放するまでの流れは以下の図のようになります(図はアップルのサイトから引用)。 alloc または init すると参照カウントが1になります alloc または init 系メソッドを呼ぶと参照カウントが1になります。 このように書いたのは、クラスの仕様によって alloc メソッドで retainCount が1になるオブジェクトと init 系のメソッドで retainCount が1になるオブジェクトがあるためです。alloc と init はセットで呼ばれることがほとんどなのでこの違いが問題になることはないと思いますが念のため。 int main() { /* allocで参照カウント1 */ NS

  • iPhoneアプリがメモリリークや不正アクセスで落ちてしまう時の対策 » SHINGOLOG

    これまでに作ったアプリが、正しく動くときと動かない時があり、落ちていることにずっと悩んでいたのですが、どうにか解決しました。今のところ、落ちていません。 落ちるタイミングとして、NavigationControllerを使って移動した直後、しかも画面を読み込み中に戻ったりすると、落ちるパターンが数多くありました。作っているアプリがインターネットから情報を読み込むものが多く、読み込みの途中で前の画面に戻ったりした場合にインスタンスが開放されていて、落ちていたものと思われます。 対策例 例えばこのような場合 @interface test : NSObject { @private NSString* teststring; id testid; } @property (nonatomic, retain) NSString* teststring; @property (nonatomic

  • 1