コース: Objective-C 基本講座

今すぐコースを受講しましょう

今すぐ登録して、23,200件以上登録されている、業界エキスパート指導のコースを受講しましょう。

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

反射時間を測定する・NSTimerでの自動実行 - Objective-Cのチュートリアル

コース: Objective-C 基本講座

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

このレッスンでは指定したメソッドを 時間を遅らせて呼び出したり 繰り返し呼び出したりするために使う― 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 にしなければなりません…

目次