Swift闭包编程:从基础到内存管理与GCD应用
闭包初体验
在Swift编程中,我们可以通过调用 addPeriodicTimeObserver(forInterval:queue: using:)
方法来尝试使用闭包。在调用该方法时,我们需要传入一个闭包,当播客播放时,这个闭包会被重复调用。不过,在此之前,我们需要做一些准备工作。根据文档说明,该方法的返回值是一个 Any
类型的对象,我们最终需要将这个对象提供给 removeTimeObserver
方法,以停止更新操作。因此,我们需要在 ViewController.swift
文件顶部的其他属性旁边添加一个属性,用于保存这个对象。由于这个对象要在 init
方法完成很久之后才会创建,所以它必须是可选类型。
private var playerPeriodicObserver : Any?
在 deinit
方法中,我们已经清理了播放/暂停按钮的KVO观察者,现在我们也需要清理 playerPeriodicObserver
。可以通过添加以下代码来实现:
if let oldObserver = playerPeriodicObserver {
player?.removeTimeObserver(oldObserver)
}