2014年7月12日土曜日

【開発】Blockの強参照

ios開発を行っているとよく使うBlock。

Blockとは無名関数と言うやつです。

Block内でよくselfを呼び出してしますのですが、Block内でselfを呼び出すと強参照(strong)となり開放されないということを最近知りました。

Block内でselfなどクラスのインスタンスオブジェクトを呼び出す場合は一旦weakでインスタンスを作成し使用しましよう。

__weak HogeClass * weakSelf = self;


メモリ落ちが頻発してから気づくとかなりの箇所で修正が必要となり大変な事になりますので、なるべくBlockを使用する時は気をつけましょう!

以上!!

0 件のコメント:

コメントを投稿