IOS 中NSTimer定時(shí)器的使用
IOS 中NSTimer定時(shí)器的使用
NSTimery 定時(shí)器,主要用于進(jìn)行定時(shí)執(zhí)行指定方法,常用場(chǎng)景如:獲取驗(yàn)證碼的按鈕倒計(jì)時(shí);圖片輪播定時(shí)。
1 使用注意事項(xiàng):
1.1 倒計(jì)時(shí)時(shí)間間隔(時(shí)間單位是秒)
1.2 指定的執(zhí)行方法
1.3 實(shí)現(xiàn)指定執(zhí)行方法的對(duì)象
1.4 是否重復(fù)執(zhí)行
2 對(duì)象的內(nèi)存管理及銷毀
2.1 使用方法" invalidate "進(jìn)行停止
2.2 將對(duì)象設(shè)置為" nil "
2.3 特別是在返回到其他視圖控制器的時(shí)候,要在方法" - (void)viewWillDisappear:
(BOOL)animated "中(注意:不能在方法" - (void)dealloc 在設(shè)置)將timer停止,并設(shè)置為nil
// 有效釋放 - (void)viewWillDisappear:(BOOL)animated { [super viewWillDisappear:animated]; [timer invalidate]; timer = nil; } // 無(wú)效釋放 - (void)delloc { [timer invalidate]; timer = nil; }
3 計(jì)時(shí)器啟用關(guān)閉繼續(xù)
3.1 開始:
timer.fireDate = [NSDate distantPast];
3.2 停止:
timer.fireDate = [NSDate distantFuture];
3.3 繼續(xù):
[timer setFireDate:[NSDate date]];
使用示例(倒計(jì)時(shí)):
三種實(shí)例化方法,級(jí)對(duì)應(yīng)的停止方法
方法1
// 實(shí)例化方法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]; // 非必要設(shè)置,實(shí)際已設(shè)置為 NSDefaultRunLoopMode 模式 [[NSRunLoop currentRunLoop] addTimer:self.timer forMode:NSRunLoopCommonModes]; }
// 關(guān)閉定時(shí)器方法1 [self.timer invalidate]; self.timer = nil;
方法2
// 實(shí)例化方法2 初始后化,需要調(diào)用" setFireDate "才開始執(zhí)行 if (self.timer == nil) { self.timer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(countDownTime:) userInfo:nil repeats:YES]; // 非必要設(shè)置,實(shí)際已設(shè)置為 NSDefaultRunLoopMode 模式 [[NSRunLoop currentRunLoop] addTimer:self.timer forMode:NSRunLoopCommonModes]; [self.timer setFireDate:[NSDate distantFuture]]; } self.time = 10.0; [self.timer setFireDate:[NSDate distantPast]];
// 關(guān)閉定時(shí)器方法2 [self.timer setFireDate:[NSDate distantFuture]];
方法3
// 實(shí)例化方法3 初始化后,需要調(diào)用" fire "才開始執(zhí)行 if (self.timer == nil) { self.timer = [NSTimer timerWithTimeInterval:1.0 target: self selector:@selector(countDownTime:) userInfo:nil repeats:YES]; // 必須設(shè)置 NSRunLoop 線程池,否則無(wú)效 [[NSRunLoop currentRunLoop] addTimer:self.timer forMode:NSRunLoopCommonModes]; } self.time = 10.0; [self.timer fire];
// 關(guān)閉定時(shí)器方法3 [self.timer invalidate]; self.timer = nil;
如有疑問(wèn)請(qǐng)留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站 的支持!
相關(guān)文章
僅幾行iOS代碼限制TextField輸入長(zhǎng)度
這篇文章主要為大家詳細(xì)介紹了通過(guò)幾行iOS代碼限制TextField輸入長(zhǎng)度的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-09-09ios UITableView實(shí)現(xiàn)無(wú)數(shù)據(jù)加載占位圖片
這篇文章主要介紹了ios UITableView實(shí)現(xiàn)無(wú)數(shù)據(jù)占位圖片,具有一定的參考價(jià)值,有興趣的可以了解一下2017-08-08IOS動(dòng)畫效果源代碼整理(粒子、雪花、火焰、河流、蒸汽)
本篇文章給大家整理的IOS的關(guān)于動(dòng)畫的效果代碼整理,很多效果非常的好看,有興趣的學(xué)下。2018-01-01IOS 時(shí)間和時(shí)間戳之間轉(zhuǎn)化示例
我們經(jīng)常從服務(wù)器后臺(tái)拿到時(shí)間戳的時(shí)間,以下代碼可以實(shí)現(xiàn)將時(shí)間戳轉(zhuǎn)為可讀的時(shí)間格式,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2017-01-01詳解使用Xcode7的Instruments檢測(cè)解決iOS內(nèi)存泄露(最新)
本篇文章主要介紹使用Xcode7的Instruments檢測(cè)解決iOS內(nèi)存泄露(最新)的相關(guān)資料,需要的朋友可以參考下2017-09-09IOS實(shí)現(xiàn)基于CMPedometer的計(jì)步器
這篇文章主要為大家詳細(xì)介紹了IOS實(shí)現(xiàn)基于CMPedometer的計(jì)步器,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-06-06iOS實(shí)現(xiàn)左右可滑動(dòng)的選擇條實(shí)例代碼分享
本文通過(guò)實(shí)例代碼給大家介紹了ios實(shí)現(xiàn)左右可滑動(dòng)的選擇條功能,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下2017-03-03Xcode8下iOS10常見報(bào)錯(cuò)閃退,字體適配和編譯不過(guò)的問(wèn)題及解決方案
蘋果推送了iOS10,好多朋友迅速即將系統(tǒng)升級(jí)了ios10,然后遇到好多問(wèn)題。下面小編給針對(duì)遇到的問(wèn)題給大家介紹解決方法,希望對(duì)大家有所幫助,感興趣的朋友可以參考下2016-09-09