欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

IOS 中NSTimer定時器的使用

 更新時間:2017年10月11日 09:56:42   作者:番薯大佬  
這篇文章主要介紹了IOS 中NSTimer定時器的使用的相關(guān)資料,希望通過本文能幫助到大家,能讓大家徹底理解使用該方法,需要的朋友可以參考下

IOS 中NSTimer定時器的使用

NSTimery 定時器,主要用于進行定時執(zhí)行指定方法,常用場景如:獲取驗證碼的按鈕倒計時;圖片輪播定時。

1 使用注意事項:

1.1 倒計時時間間隔(時間單位是秒)
1.2 指定的執(zhí)行方法
1.3 實現(xiàn)指定執(zhí)行方法的對象
1.4 是否重復執(zhí)行
2 對象的內(nèi)存管理及銷毀
2.1 使用方法" invalidate "進行停止
2.2 將對象設置為" nil "
2.3 特別是在返回到其他視圖控制器的時候,要在方法" - (void)viewWillDisappear:
     (BOOL)animated "中(注意:不能在方法" - (void)dealloc 在設置)將timer停止,并設置為nil

// 有效釋放 
- (void)viewWillDisappear:(BOOL)animated 
{ 
  [super viewWillDisappear:animated]; 
   
  [timer invalidate]; 
  timer = nil; 
} 
 
// 無效釋放 
- (void)delloc 
{ 
  [timer invalidate]; 
  timer = nil; 
} 

3 計時器啟用關(guān)閉繼續(xù)

3.1 開始:

timer.fireDate = [NSDate distantPast]; 

3.2 停止:

timer.fireDate = [NSDate distantFuture]; 

3.3 繼續(xù):

[timer setFireDate:[NSDate date]]; 

使用示例(倒計時):

三種實例化方法,級對應的停止方法

方法1

// 實例化方法1 初始化后即開始執(zhí)行 
if (self.timer == nil) 
{ 
    self.time = 10.0; 
    // 帶參數(shù) 
    NSNumber *number = @(self.time); 
    self.timer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(countDownTime:) userInfo:number repeats:YES]; 
    // 非必要設置,實際已設置為 NSDefaultRunLoopMode 模式 
    [[NSRunLoop currentRunLoop] addTimer:self.timer forMode:NSRunLoopCommonModes]; 
} 

// 關(guān)閉定時器方法1 
[self.timer invalidate]; 
self.timer = nil; 

方法2

// 實例化方法2 初始后化,需要調(diào)用" setFireDate "才開始執(zhí)行 
if (self.timer == nil) 
{ 
    self.timer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(countDownTime:) userInfo:nil repeats:YES]; 
    // 非必要設置,實際已設置為 NSDefaultRunLoopMode 模式 
    [[NSRunLoop currentRunLoop] addTimer:self.timer forMode:NSRunLoopCommonModes]; 
    [self.timer setFireDate:[NSDate distantFuture]]; 
} 
self.time = 10.0; 
[self.timer setFireDate:[NSDate distantPast]]; 



// 關(guān)閉定時器方法2 
[self.timer setFireDate:[NSDate distantFuture]]; 

方法3

// 實例化方法3 初始化后,需要調(diào)用" fire "才開始執(zhí)行 
if (self.timer == nil) 
{ 
    self.timer = [NSTimer timerWithTimeInterval:1.0 target: self selector:@selector(countDownTime:) userInfo:nil repeats:YES]; 
    // 必須設置 NSRunLoop 線程池,否則無效 
    [[NSRunLoop currentRunLoop] addTimer:self.timer forMode:NSRunLoopCommonModes]; 
} 
self.time = 10.0; 
[self.timer fire]; 

// 關(guān)閉定時器方法3 
[self.timer invalidate]; 
self.timer = nil; 

如有疑問請留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站 的支持!

相關(guān)文章

最新評論