Objective-C 基本講座

反射時間を測定する・NSTimerでの自動実行

全334コースを10日間無料で

ぜひご覧ください。

無料で視聴する すべての加入プランを見る
または
指定したメソッドを、時間を遅らせて呼び出したり、繰り返し呼び出したりするために使うNSTimerを紹介します
講師:
05:14

字幕

このレッスンでは指定したメソッドを 時間を遅らせて呼び出したり 繰り返し呼び出したりするために使う― NSTimer を紹介します NSTimer は ターゲットアクションデザインパターンを使い 指定した間隔でメソッドを呼び出してくれます 簡易コンストラクターで何秒後に 呼び出してほしいのかと 呼び出すオブジェクトとメソッドを指定します 秒数は実数で小数点以下も指定可能です 呼び出された時に 利用したいオブジェクトがあれば userInfo に指定します userInfo を指定した場合は 呼び出してもらうメソッドとして 引数付きのメソッドを指定し NSTimer を受け取り その userInfo プロパティから取り出します 特になければnil を指定します 呼び出しを定期的に繰り返したければ repeats に yes を指定します yes の場合は第1 引数の秒数が 呼び出す間隔となります もしタイマーをキャンセル できるようにしたければ 簡易コンストラクターから戻される― NSTimer を受け取っておいて 必要な時に invalidded メッセージを送るようにしてください invalidded メッセージを送った後の NSTimer は利用できないので 間違ってメッセージが送られないよう nil を入れます nil へのメッセージ送信で何も起こらないことは Objective-C が保証しています それでは実際に試してみましょう Xcode の画面に切り替えます setView に UITapGestureRecognizer を登録し 画面タップで タイマーを起動するようにしています タイマーをキャンセルできるようにするので インスタンス変数 timer として NSTimer を持たせるようにしています タップされたらこの変数を調べ nil でなければ停止命令の invalidate を送り nil にします nil の時はタイマーを起動します ターゲットには自分を指定し 0.5 秒間隔で繰り返し print メソッドを呼ぶようにしました print メソッドで使っている NSLog は 日付付きでコンソールに文字列を出力します 引数は可変調で printf のように扱えますが 与える文字列は NSSring にしなければなりません タップするとタイマーが動き出し もう一度タップすると止まります ところでクイックヘルプを調べると わかりますが このNSTimer は タイマー作動中はターゲットや userInfo に受け取ったオブジェクトが メモリーから片付けられないようにします そのためターゲットにself を指定すると ここに書いているように 自分がメモリーから片付けられる直前に 呼ばれる決まりの dealloc メソッドでタイマーが動いていたら 止めるといった処理は起こりえません タイマーが動いている限り dealloc メソッドは呼ばれないからです タイマーを止めるべきか そのまま続けさせるべきか 常に見張り dealloc 以外で タイマーを止めるようにしてください もしどうしても dealloc で止めたいなら ターゲットに self を渡すのはやめ 代わりに自分を参照しないオブジェクトを 渡さなければいけません タイマーでの処理が完全に独立したものなら それも可能でしょう タイマーでの処理は自分自身が行いたい場合は 例えば このように weak で参照するようにした― オブジェクトから自分のタイマーでの処理を 呼び出してもらう方法もあります 正式にデリゲートデザインパターンでやるとか 各自で工夫してください このレッスンでは特定の処理を 時間を遅らせて実行したり 繰り返し実行したりするために使う― NSTimer を紹介しました

Objective-C 基本講座

このコースはプログラミング初心者でもObjective-CによるiOSアプリ開発の体系的な理解が得られるように構成されています。プログラムの動作の原理、Objective-C言語の役割、そこで利用されるCocoa touchオブジェクトの役割、基本的なiOSアプリの作成方法などを学習します。ぜひこのコースをアプリ開発に踏み出すさいの第一歩としてください!

6時間39分 (69 ビデオ)
現在、カスタマーレビューはありません…
 
ソフトウェア・トピック
価格: 3,990
発売日:2015年11月18日

このコースは、「オンデマンド」でご利用可能であり、ダウンロードすることもオンラインで見ることもできます。

ダウンロードすると、オフラインでコースを使用し、豊富なインターフェースをフルに活用できます。複数のデバイスを使用したり、 一度に全コースをダウンロードしたくない場合は、アカントにログインして、ストリーミング・ビデオとしてコースのレッスンを視聴してください。

ビデオトレーニングをお楽しみいただけますように! お問い合わせは、cs-jp@lynda.com宛までご連絡ください。