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