我需要在调用 popToRootViewController 之前使我的 NSTimer 失效吗?

Do I need to invalidate my NSTimer before calling popToRootViewController?

我有一个 UInavigationController 和三个 UIViewController。

我们称它们为 nav、vcA、vcB 和 vcC。

nav 包含 vcA 作为 root,然后推送 vcB,然后推送 vcC。

我在 vcC 有一个 NSTimer,我调用了函数 popToRootViewController。

NSTimer 正在工作,即使我在 vcA(导航的根)。我是否需要使其无效才能发布 vcC?

当你实例化NSTimer时,你是否将self (vcC)设置为它的目标?如果是这样,那么您需要使您的计时器无效,否则 vcC 将不会被释放。我不知道你对ARC有多熟悉,但是当你将vcC设置为NSTimer的目标时,vcC's retain count is added by 1

如果定时器是

  • 重复定时器让定时器失效是编程的好习惯

  • 单发 计时器它自己失效。