Learn iPhone, iOS, Objective-c, Swift, cocos2dx, Unity and ….?

iOSやAndroid開発でのエラー解決法や便利tipsのメモ

RSS Feed

Objective-C – NSTimerについて(alloc, release, invalidateとか)-

0 Comments
Posted by Kuro on 2013/02/13

スポンサードリンク

NSTimerはalloc,init,releaseをせずに使うという変則的なクラスです。
invalidateってなんだろうと思って調べたのでメモしておきます。

retain, releaseはしない

NSTimerはrunloopがratainするのでこちらで明示的にretainする必要はありません。
invalidateを呼ぶとrunloopから取り除かれreleaseもされるのでこちらでreleaseしてはダメです。

deallocでinvalidateしても呼ばれない

timer自身がselfをretainしてしまうので(targetをselfにした場合)、timerが回っているとdeallocは呼ばれません。
なのでdealloc以外の場所(e.g.viewWillDisappear)で確実にinvalidateしなくてはなりません。

NSTimer生成→破棄のサンプル

参考サイト:
http://akisute.com/2009/05/nstimerretainassign.html
http://d.hatena.ne.jp/glass-_-onion/20090831/1251723900
http://net-vacation.com/iphone-apri-development/nstimer

スポンサードリンク


You can leave a comment, or trackback from your own site.

0 Comments

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

Pingbacks / Trackbacks

スポンサードリンク

Popular Posts