程序员iOS DeveloperiOS 开发每天分享优质文章

OC_NSTimer简单使用

2016-05-18  本文已影响574人  KermitX
手动搭配NSRunLoop使用
#pragma mark - timer方法
/**
 *  添加定时器
 */
-(void)addTimer
{
    _timer =  [NSTimer timerWithTimeInterval:2 target:self selector:@selector(checkInfo) userInfo:nil repeats:YES];
    //多线程 UI iOS程序默认只有一个主线程,处理UI的只有主线程。如果拖动第二个UI,则第一个UI事件则会失效。
    [[NSRunLoop currentRunLoop] addTimer:_timer forMode:NSRunLoopCommonModes];
}

/**
 *  关闭定时器
 */
-(void)closeTimer
{
    [_timer invalidate];
}

- (void)dealloc {
    
    [self closeTimer];
    _timer = nil;
}
使用scheduled方式初始化,将以默认mode直接添加到当前的runloop中
#pragma mark - timer方法
/**
 *  添加定时器
 */
-(void)addTimer
{
    _timer =  [NSTimer scheduledTimerWithTimeInterval:2 target:self selector:@selector(checkInfo) userInfo:nil repeats:YES];
    [_timer fire];
}

/**
 *  关闭定时器
 */
-(void)closeTimer
{
    [_timer invalidate];
}
- (void)dealloc {
    
    [self closeTimer];
    _timer = nil;
}
上一篇 下一篇

猜你喜欢

热点阅读