我有一个tableview。但是当我滚动表格视图时,我的计时器在那时停止,并在滚动后再次调用它。 所以我想在另一个线程中调用该计时器。
// This is my timer..
[NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(Timer_Called) userInfo:nil repeats:YES];
// This is my another thread method. I am trying like this but its not working
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
[self Timer_Called];
});
任何人都可以建议我吗?
答案 0 :(得分:0)
NSTimer
通常不会触发 - 或者执行将运行循环置于事件跟踪模式的任何其他操作。
当我们定义这样的计时器时:
[NSTimer scheduledTimerWithTimeInterval:0.5
target:self
selector:@selector(call_a_method:)
userInfo:nil repeats:YES];
计时器以NSDefaultRunLoopMode
的默认运行循环模式添加。这意味着当默认运行循环模式处于暂停状态时,您的计时器将被有效冻结。
如果在滚动表格视图时需要运行计时器,请执行以下操作:
NSTimer *timer = [NSTimer timerWithTimeInterval:1.0
target:self
selector:@selector(Timer_Called)
userInfo:nil repeats:YES];
[[NSRunLoop mainRunLoop] addTimer:timer forMode:NSRunLoopCommonModes];
希望这会有所帮助.. :)