国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 系統(tǒng) > iOS > 正文

IOS 中NSTimer定時(shí)器的使用

2020-02-19 15:45:57
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

我們?cè)陂_(kāi)發(fā)過(guò)程中,如果不熟悉NSTimer,在操作的時(shí)候很可能會(huì)發(fā)生循環(huán)引用,導(dǎo)致內(nèi)存無(wú)法釋放,今天是武林技術(shù)頻道小編帶給大家的IOS 中NSTimer定時(shí)器的使用,一起來(lái)看看吧!

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 開(kāi)始:

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 初始化后即開(kāi)始執(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 "才開(kāi)始執(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 "才開(kāi)始執(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; 今天這篇文章是武林技術(shù)頻道小編帶給大家的IOS 中NSTimer定時(shí)器的使用,大家了解的怎樣?更多的專業(yè)知識(shí),盡在js.Vevb.com。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 阿拉善盟| 固阳县| 恩平市| 章丘市| 文登市| 武乡县| 大新县| 浦县| 遵义市| 陕西省| 友谊县| 黄骅市| 晋宁县| 抚州市| 永宁县| 于都县| 武功县| 万荣县| 遂平县| 吴桥县| 故城县| 伊春市| 登封市| 玉林市| 府谷县| 靖远县| 慈溪市| 岳西县| 玉环县| 辽中县| 西丰县| 特克斯县| 宽甸| 和田市| 潮州市| 屏山县| 房山区| 黄骅市| 密云县| 镇安县| 阆中市|