ios- NSTimer的学习

1.不管是重复性的timer还是一次性的timer都会对它的方法的接收者进行retain,这两种timer的区别在于“一次性的timer在完成调用以后会自动将自己invalidate,而重复的timer则将永生,直到你显示的invalidate它为止”。

2.企图在dealloc中对timer进行invalidate是一种自欺欺人的做法,因为你的timer对self进行了retain,如果timer一直有效,则self的引用计数永远不会等于0

3.

_timer= [NSTimer scheduledTimerWithTimeInterval:1target:self selector:@selector(testTimer:) userInfo:nil repeats:YES];

timer都会对它的target进行retain,我们需要小心对待这个target的生命周期问题,尤其是重复性的timer。

4.timer不是一种实时的机制,会存在延迟,而且延迟的程度跟当前线程的执行情况有关。

5.runloopMode设置

6.要让timer生效,必须保证该线程的runloop已启动,而且其运行的runloopmode也要匹配。

你可能感兴趣的:(ios- NSTimer的学习)