タグ

objective-cとC++に関するbeth321のブックマーク (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開発で、メモリ管理の基礎を社員に伝えることが増えてきたので、エントリとして書こう。 Objective-C基礎 メモリ管理の前にObjCの基礎として、メソッド呼び出しの話。 クラスのインスタンスaがmethodAをコールするときは、 [a methodA] と書く。このとき、aがnilだったときは、エラーではなく、コールされない。methodAに戻り値があるときは、それは、0やnilやNOが返る。ObjCでは、 void dealloc { if(a!=nil){ [a release]; } [super dealloc]; } は、気持ち悪いので、nilチェックはやめましょう。 なお、ObjCでは、動的にメソッドを差し替えることができ、コールの度にメソッドが存在しているかも確認しています。そのため、LL言語(ライトウェイト言語、スクリプト)のように柔軟な記述が可能です。そし

    メモリ管理 - かみやんの技術者ブログ
  • 1