【发布时间】:2020-10-24 02:50:12
【问题描述】:
在每个 UIViewController 中,我都获得了带有简单打印语句的 deinit 函数,该语句告诉我该特定 UIViewController 何时从内存中删除。
deinit {
print("VIEWCONTROLLER DELETED FROM MEMORY")
}
但是,作为 UITabBarController 一部分的所有 UIViewController 将永远不会调用 deinit,我也永远不会在控制台中看到 print 语句。
除此之外:
里面的代码...
NotificationCenter.default.addObserver(forName: UIApplication.didChangeStatusBarOrientationNotification, object: nil, queue: OperationQueue.main) { (notification) in
print("Device rotated")
}
... 也将在其他选项卡上调用。因此,当设备从横向切换到纵向时,即使我不在特定代码所在的 UIViewcontroller 中,上述闭包内的所有代码都将被执行......奇怪!
这是为什么呢?
【问题讨论】:
标签: memory uiviewcontroller uitabbarcontroller dismiss