美文网首页
NSTimer循环引用

NSTimer循环引用

作者: 小码农CC | 来源:发表于2022-10-28 17:52 被阅读0次

    NSTimer解决循环引用

    
    @interface SecendViewController ()
    @property (nonatomic,strong) NSTimer *timer;
    @end
    
      self.timer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(timerrun) userInfo:nil repeats:YES];
    
    
    - (void)timerrun{
        NSLog(@"开始跑定时器---");
    }
    
    - (void)dealloc{
        NSLog(@"dealloc");
        
    }
    

    这种写法 页面返回时,发现页面的dealloc没有调用,这是因为timer和VC相互调用没有被释放,那timer应该怎么释放?

        [self.timer invalidate];
    

    使用这个方法,这个方法应该放在哪里?直接放到dealloc中可以吗?显然是不可以的,因为dealloc方法不会调用,invalidate方法应该放在dealloc调用之前,释放之后才能调用。
    可以放在

    - (void)viewDidDisappear:(BOOL)animated{
        NSLog(@"view did disappear");
        [self.timer invalidate];
    }
    

    相关文章

      网友评论

          本文标题:NSTimer循环引用

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