# 52、别忘了NSTimer会保留其目标对象

可以看这篇：[iOS\_定时器：NSTimer、GCDTimer、DisplayLink](https://blog.csdn.net/Margaret_MO/article/details/107318776)

要点：

* `NSTimer`对象会保留其目标，直到计时器本身失效为止，调用`invalidate`方法可令计时器失效，另外，一次性的计时器在触发完任务之后也会失效
* 反复执行任务的计时器，很容易引入保留环，如果这种计时器的目标又保留了计时器本身，那肯定会导致保留环。这种关系，可能直接发送，也可能通过对象图里的其他对象间接发生
* 可以扩充`NSTimer`的功能，用“块”来打破保留环。不过除非`NSTimer`将来在公共接口里提供此功能，否则需创建分类，将相关实现代码加入其中
