ios 计时器相关处理和方法

1.初始化计时器

-(NSTimer*) timer

{

    if(_timer==nil)

    {

        _timer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self.listModel selector:@selector(comedownCutEvent) userInfo:nil repeats:YES];

        [[NSRunLoop mainRunLoop] addTimer:_timer forMode:NSRunLoopCommonModes];//比如tableView滑动时,如果不加入这句话,计时器会出现卡顿等其他现象

    }

    return _timer;

}

2.开启计时器

- (void)startTimer

{

    [self.timer setFireDate:[NSDate distantPast]];

}

3.暂停计时器

- (void)pauseTimer

{

    [self.timer setFireDate:[NSDate distantFuture]];

}

4.销毁计时器

-(void) stopTimer

{

    [self.timer invalidate];

    self.timer=nil;

}

5.假设计时器加在View上,需要在视图被释放时销毁计时器

-(void) willMoveToSuperview:(UIView*)newSuperview

{

    [superwillMoveToSuperview:newSuperview];

    if(!newSuperview &&self.timer)

    {

        [self stopTimer]; //销毁计时器

    }

}

6.倘若计时器的添加和销毁均有处理,离开控制器页面时,计时器仍然在运行,那么可能存在计时器持有了控制器等问题,需要将控制器等进行弱引用。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容