在订阅可选控制器的情况下,如果需要安全地取消订阅,可以使用以下代码示例:
class ViewController: UIViewController {
var observer: NSObjectProtocol?
override func viewDidLoad() {
super.viewDidLoad()
// 订阅可选控制器
observer = NotificationCenter.default.addObserver(forName: NSNotification.Name("SomeNotification"), object: nil, queue: nil) { notification in
// 处理通知
print("Received notification")
}
}
deinit {
// 在控制器销毁时,取消订阅通知
if let observer = observer {
NotificationCenter.default.removeObserver(observer)
}
}
}
在上述示例中,我们在viewDidLoad()
方法中订阅了一个可选控制器,通过使用addObserver(forName:object:queue:using:)
方法来监听指定的通知。在控制器将要销毁时,deinit
方法会被调用,我们在其中通过removeObserver(_:)
方法来取消订阅通知。
这种做法可以确保在控制器释放时,正确地取消对通知的订阅,避免了潜在的内存泄漏问题。
下一篇:安全取消MySQL导入