Arr*_*s92 2 uiviewcontroller ios swift deinit
我想知道在每个视图控制器上实现 adeinit以检查它消失时是否被正确删除并避免内存泄漏是否是一个好习惯?
默认情况下,您不必deinit在类中实现该方法:
\n\n\n当不再需要实例时,Swift会自动取消分配实例,以释放资源。Swift 通过自动引用计数 (ARC) 处理实例的内存管理,如自动引用计数中所述。通常,当您的实例被释放时,\xe2\x80\x99 不需要执行\n 手动清理。但是,当您使用自己的资源时,您可能需要自己执行一些额外的清理工作。例如,如果您创建一个自定义类来打开文件并向其中写入一些数据,则可能需要在释放类实例之前关闭该文件。
\n\nSwift 去初始化文档 -去初始化如何工作部分。
\n
通常,在使用视图控制器时,似乎不需要执行这样的实现。然而,正如@rmaddy的评论中提到的,它仍然是使用视图控制器跟踪内存泄漏或引用循环的方法。
\n\n如果您的目的是检查控制器是否已从层次结构中删除(视图控制器生命周期),您可以实现viewWillDisappear(_:) 或viewDidDisappear(_:)方法;请注意,调用这些方法并不能保证将deinit被调用,即,这并不意味着消失视图控制器总是会导致释放它(相关:Deinit never Call,deinit not Call的解释)。
还:
\n\n这些问答应该有用:
\n\n\n| 归档时间: |
|
| 查看次数: |
3122 次 |
| 最近记录: |