deinit 仅在视图控制器打开时被调用
deinit only gets called when view controller opens
这与内存泄漏问题有关。我有一个视图控制器,它通过调用 performSegueWithIdentifier 显示,并通过调用 self.dismissViewController 关闭。我在这个视图控制器中有一个 deinit 函数,但是当调用 dismissViewController 时它不会被调用,它只会在显示视图控制器时被调用。有人可以解释为什么我会看到这种异常行为吗?谢谢!
可能您在展示的控制器中强烈引用了您的第二个控制器。所以当你解散时,deinit 不会被调用。如果您再次出现,先前的实例将被取消。
这与内存泄漏问题有关。我有一个视图控制器,它通过调用 performSegueWithIdentifier 显示,并通过调用 self.dismissViewController 关闭。我在这个视图控制器中有一个 deinit 函数,但是当调用 dismissViewController 时它不会被调用,它只会在显示视图控制器时被调用。有人可以解释为什么我会看到这种异常行为吗?谢谢!
可能您在展示的控制器中强烈引用了您的第二个控制器。所以当你解散时,deinit 不会被调用。如果您再次出现,先前的实例将被取消。