NSTimer
在iOS開發(fā)過程中御蒲,NSTimer還是經(jīng)常使用的衣赶,當(dāng)然了,學(xué)習(xí)了GCD之后厚满,有很多一次行的功能會使用GCD進(jìn)行實現(xiàn)府瞄。
- NSTimer的不同使用方式
/**
參數(shù)說明
1. 時間間隔,double
2. 監(jiān)聽時鐘觸發(fā)的對象
3. 調(diào)用方法
4. userInfo碘箍,可以是任意對象遵馆,通常傳遞nil
5. repeats:是否重復(fù)
*/
// 1>
self.timer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(updateTimer:) userInfo:@"hello timer" repeats:YES];
// scheduledTimerWithTimeInterval 方法本質(zhì)上就是創(chuàng)建一個時鐘,
// 添加到運行循環(huán)的模式是DefaultRunLoopMode(這個模式將會監(jiān)聽點擊操作等操作丰榴,但是一旦有拖動的事件時货邓,將不在監(jiān)聽)
// 2> 與1等價
self.timer = [NSTimer timerWithTimeInterval:1.0 target:self selector:@selector(updateTimer:) userInfo:nil repeats:YES];
// 將timer添加到運行循環(huán)
// 模式:默認(rèn)的運行循環(huán)模式
[[NSRunLoop currentRunLoop] addTimer:self.timer forMode:NSDefaultRunLoopMode];
// 3>
self.timer = [NSTimer timerWithTimeInterval:1.0 target:self selector:@selector(updateTimer:) userInfo:nil repeats:YES];
// 將timer添加到運行循環(huán)
// 模式:NSRunLoopCommonModes的運行循環(huán)模式(監(jiān)聽滾動模式)
[[NSRunLoop currentRunLoop] addTimer:self.timer forMode:NSRunLoopCommonModes];
// 停止時鐘,invalidate是唯一停止時鐘的方法
// 一旦調(diào)用了invalidate方法四濒,timer就無效了换况,如果再次啟動時鐘,需要重新實例化盗蟆,所以在調(diào)用invalidate方法之后戈二,需要將timer設(shè)置成nil
[self.timer invalidate];