關於定時器 NSTimer 更新中

默認就會執行 ,是在 NSDefaultRunLoopMode 模式下運行的 。如果滑動會切換 UITrackingRunLoopMode  定時器失效。

 [NSTimer scheduledTimerWithTimeInterval:1 repeats:YES block:^(NSTimer * _Nonnull timer) {
        NSLog(@"currentMode == %@",[NSRunLoop currentRunLoop].currentMode);
    }];

默認不會執行 ,需要添加到 當前RunLoop  可以指定具體的運行模式.NSRunLoopCommonModes 不是真正的模式,是佔位模式(NSDefaultRunLoopMode、UITrackingRunLoopMode)都會執行。

NSTimer * timer = [NSTimer timerWithTimeInterval:2 repeats:YES block:^(NSTimer * _Nonnull timer) {
       NSLog(@"currentMode= %@",[NSRunLoop currentRunLoop].currentMode);
    }];
    
    [[NSRunLoop currentRunLoop] addTimer:timer forMode:NSRunLoopCommonModes];

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章