Swift中有类似于析构函数的东西吗?

Swift中有类似于析构函数的东西吗?,swift,Swift,Swift中是否有用于析构函数的保留关键字?在这种语言中,有必要这样做吗 Swift中是否有用于析构函数的保留关键字 处理应在释放对象之前进行的清理 在这种语言中,有必要这样做吗 在deinit中有一些标准操作。删除观察者、同步对象的状态以及写入跟踪消息以进行调试。其他事情也是可能的,只要避免长时间运行的代码块。我想把AVAudioSession.sharedInstance().setActive(true)放在init()和AVAudioSession.sharedInstance().se

Swift中是否有用于析构函数的保留关键字?在这种语言中,有必要这样做吗

Swift中是否有用于析构函数的保留关键字

处理应在释放对象之前进行的清理

在这种语言中,有必要这样做吗


deinit
中有一些标准操作。删除观察者、同步对象的状态以及写入跟踪消息以进行调试。其他事情也是可能的,只要避免长时间运行的代码块。

我想把
AVAudioSession.sharedInstance().setActive(true)
放在
init()
AVAudioSession.sharedInstance().setActive(false)
放在
deinit()
中。可以吗?还是坏主意?(尝试创建我自己的录音机和播放器)@HassanTareq否,它将对象的生命周期与用户界面混为一谈。您可能需要使用
deinit()
调用
setActive(false)
,但不需要将其作为
setActive(false)
的主要方法。我创建了
HoverAudioController
(录音机和播放器),并在
AudioMessageViewController
中使用它。在
ViewDidLoad()
中实例化
HoverAudioController
。在
HoverAudioController.init()中使用
AVAudioSession.sharedInstance().setActive(true)
。只要
AudioMessageViewController
正在使用
HoverAudioController
,我想保持会话处于活动状态,并在我的
HoverAudioController
被垃圾收集(即不再被
AudioMessageViewController
使用)时停用音频会话(
setActive(false)
)。当前正在使用HoverAudioController.deinit{setActive(false)}
。我该怎么办?@HassanTareq只要
HoverAudioController
只管理
AVAudioSession.sharedInstance()
,这似乎是合理的。确保没有其他对象保存对
HoverAudioController
的引用。