手动搭配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;
}
网友评论