美文网首页
NSTimer使用事项

NSTimer使用事项

作者: 快乐捣蛋鬼 | 来源:发表于2019-08-19 09:34 被阅读0次

    1.将NSTimer加入NSRunLoopCommonModes避免与主Runloop竞争

    两个Runloop:

    • NSDefaultRunLoopMode: 用于UI的渲染
    • NSRunLoopCommonModes:将NSTimer加入到这个Runloop,如果不特别声明,NSTimer会在默认的Runloop运行,造成有UISrollView时,滑动Scrollview,DefaultRunLoop用于渲染ScrollView,就不会继续NSTimer,NSTimer会停止。
    timer = [NSTimer scheduledTimerWithTimeInterval:1.0
                                             target:self
                                           selector:@selector(updateLastTime:)
                                           userInfo:nil
                                            repeats:YES];
    [[NSRunLoop currentRunLoop]addTimer: timer forMode:NSRunLoopCommonModes];
    
    

    2.NSTimer使用完之后手动销毁

    在使用完NSTimer之后就手动调用[timer invalidate]销毁NSTimer,不要等到在- (void)dealloc{}方法中销毁。

    - (void)backAction{
        
        [timer invalidate];
        timer = nil;
        
        [self dismissViewControllerAnimated:YES completion:nil];
        
    }
    

    相关文章

      网友评论

          本文标题:NSTimer使用事项

          本文链接:https://www.haomeiwen.com/subject/ygijsctx.html