deinit 仅在视图控制器打开时被调用

deinit only gets called when view controller opens

这与内存泄漏问题有关。我有一个视图控制器,它通过调用 performSegueWithIdentifier 显示,并通过调用 self.dismissViewController 关闭。我在这个视图控制器中有一个 deinit 函数,但是当调用 dismissViewController 时它不会被调用,它只会在显示视图控制器时被调用。有人可以解释为什么我会看到这种异常行为吗?谢谢!

可能您在展示的控制器中强烈引用了您的第二个控制器。所以当你解散时,deinit 不会被调用。如果您再次出现,先前的实例将被取消。