iOS 定時器(NSTimer)的使用
阿新 • • 發佈:2019-02-03
呼叫一次計時器方法:
myTimer = [NSTimer scheduledTimerWithTimeInterval:1.5 target:self selector:@selector(scrollTimer) userInfo:nil repeats:NO];
重複呼叫計時器方法:
timer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(function:) userInfo:nil repeats:YES];
注意:將計數器的repeats設定為YES的時候,self的引用計數會加1。因此可能會導致self(即viewController)不能release,所以,必須在viewWillAppear/viewDidAppear的時候,將計數器timer開啟;在viewWillDisappear/viewDidDisappear的時候,將計數器timer關閉,否則可能會導致記憶體洩露。
//關閉定時器 :停止timer的執行,但這個是永久的停止:
[timer invalidate];
先停止,然後再某種情況下再次開啟執行timer,可以使用下面的方法:
首先關閉定時器不能使用上面的方法,應該使用下面的方法:
//關閉定時器
[myTimer setFireDate:[NSDate distantFuture]];
然後就可以使用下面的方法再此開啟這個timer了:
//開啟定時器
[myTimer setFireDate:[NSDate distantPast]];
myTimer = [NSTimer scheduledTimerWithTimeInterval:1.5 target:self selector:@selector(scrollTimer) userInfo:nil repeats:NO];
重複呼叫計時器方法:
timer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(function:) userInfo:nil repeats:YES];
注意:將計數器的repeats設定為YES的時候,self的引用計數會加1。因此可能會導致self(即viewController)不能release,所以,必須在viewWillAppear/viewDidAppear的時候,將計數器timer開啟;在viewWillDisappear/viewDidDisappear的時候,將計數器timer關閉,否則可能會導致記憶體洩露。
//關閉定時器 :停止timer的執行,但這個是永久的停止:
[timer invalidate];
先停止,然後再某種情況下再次開啟執行timer,可以使用下面的方法:
首先關閉定時器不能使用上面的方法,應該使用下面的方法:
//關閉定時器
[myTimer setFireDate:[NSDate distantFuture]];
然後就可以使用下面的方法再此開啟這個timer了:
//開啟定時器
[myTimer setFireDate:[NSDate distantPast]];