スポンサーリンク

【Obj-C】NSTimer (タイマー)の使用方法

NSTimer (タイマー)の使用方法 iPhone ios 逆引き サンプル

userInfo タイマーのイベントが発生した時に呼び出されるメソッド内で利用するデータを作成する。

NSDictionary *userInfo =[NSDictionary dictionaryWithObjectsAndKeys:

@”my value is 1″,@”key1″,

@”my value is 2″,@”key2″,

@”my value is 3″,@”key3″,

nil

];

自動でタイマーはスタートします。

NSTimer *timer = [NSTimer

タイマーイベントを発生させる感覚。「1.5」は 1.5秒 型は float

scheduledTimerWithTimeInterval:1.5

呼び出すメソッドの呼び出し先(selector) self はこのファイル(.m)

target:self

呼び出すメソッド名。「:」で自分自身(タイマーインスタンス)を渡す。

インスタンスを渡さない場合は、「timerInfo」

selector:@selector(timerInfo:)

呼び出すメソッド内で利用するデータが存在する場合は設定する。ない場合は「nil」

userInfo:userInfo

上記で設定した秒ごとにメソッドを呼び出す場合は、「YES」呼び出さない場合は「NO」

repeats:NO

];

タイマーの状態を取得する方法、「0」: 停止中 「1」: 動作中

[timer isValid];

NSLog(@”Timer Status : %d”,[timer isValid]);

タイマーを停止したい場合

[timer invalidate];

NSLog(@”Timer Status : %d”,[timer isValid]);

タイマーを開始、再開する場合

[timer fire];

NSLog(@”Timer Status : %d”,[timer isValid]);

呼び出しメソッド

-(void) timerInfo:(NSTimer *)timer

{

NSLog(@”key1 : %@”,[[timer userInfo] objectForKey:@”key1″]);

NSLog(@”key2 : %@”,[[timer userInfo] objectForKey:@”key2″]);

NSLog(@”key3 : %@”,[[timer userInfo] objectForKey:@”key3″]);

}

コードサンプル

- (void)viewDidLoad
{
    [super viewDidLoad];
    // NSTimer (タイマー)の使用方法 iPhone ios 逆引き サンプル

    // userInfo タイマーのイベントが発生した時に呼び出されるメソッド内で利用するデータを作成する。
    NSDictionary *userInfo =[NSDictionary dictionaryWithObjectsAndKeys:
                             @"my value is 1",@"key1",
                             @"my value is 2",@"key2",                             @"my value is 3",@"key3",                             nil
                             ];

    // 自動でタイマーはスタートします。
    NSTimer *timer = [NSTimer 
                      // タイマーイベントを発生させる感覚。「1.5」は 1.5秒 型は float
                      scheduledTimerWithTimeInterval:1.5
                      // 呼び出すメソッドの呼び出し先(selector) self はこのファイル(.m)
                      target:self
                      // 呼び出すメソッド名。「:」で自分自身(タイマーインスタンス)を渡す。
                      // インスタンスを渡さない場合は、「timerInfo」
                      selector:@selector(timerInfo:)
                      // 呼び出すメソッド内で利用するデータが存在する場合は設定する。ない場合は「nil」
                      userInfo:userInfo
                      // 上記で設定した秒ごとにメソッドを呼び出す場合は、「YES」呼び出さない場合は「NO」
                      repeats:NO
                      ];

    // タイマーの状態を取得する方法、「0」: 停止中 「1」: 動作中
    [timer isValid];
    NSLog(@"Timer Status : %d",[timer isValid]);

    // タイマーを停止したい場合
    [timer invalidate];
    NSLog(@"Timer Status : %d",[timer isValid]);

    // タイマーを開始、再開する場合 
    [timer fire];
    NSLog(@"Timer Status : %d",[timer isValid]);

}
-(void) timerInfo:(NSTimer *)timer
{
    NSLog(@"key1 : %@",[[timer userInfo] objectForKey:@"key1"]);
    NSLog(@"key2 : %@",[[timer userInfo] objectForKey:@"key2"]);
    NSLog(@"key3 : %@",[[timer userInfo] objectForKey:@"key3"]);
}
タイトルとURLをコピーしました