iOS-NSTimer-pause-暫停-引用循環


7月26日更新:

今天更新的主要目的是因為暫停!!!!

注:不推薦使用,並不是這樣有錯,而是因為這樣寫代碼的規范問題,代碼要有可讀性,遵循代碼即文檔,使用暫停在團隊合作中可能會帶來誤會,非必要不建議使用,使用注意添加注釋!!!

NSTimer,是個有愛有恨的類,用起來方便,但是隨隨便便就可能引用循環了,內存泄露自然不用說了;

怎么方便的使用NStimer,這里小小的總結了下,寫的不對的歡迎指出。

首先是習慣問題,為了防止寫錯,我一般會把NSTimer相關的封到單獨的函數里面。

如下:

- (void)initTimer
{
    if(_timer)
    {
        [self clearTimer];
    }
    _timer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(test) userInfo:nil repeats:YES];
}
- (void)clearTimer
{
    [_timer finalize];
    _timer = nil;
}
- (void)test
{
    NSLog(@"Timer!");
}

還有就是,可以嘗試一次初始化,一直使用,直到dealloc釋放,所以就需要暫停了,

方法如下:

- (void)stratAnimationTimer
{
    [_animationTimer setFireDate:[NSDate date]];
} 
- (void)pauseAnimationTimer
{
    [_animationTimer setFireDate:[NSDate distantFuture]];
}

設置觸發時間[NSDate distantFuture],就暫停了,怎么暫停的呢,觸發時間distantFuture,不懂自己翻譯去~~~

怎么開始?[NSDate date],立刻觸發就好了!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM