[英]KVO Observing AVPlayer causes App crash in iOS 13
我遇到了与在 iOS 13 中观察AVPlayer.timeControlStatus
相关的奇怪崩溃。在 iOS 12 中没有发生这种情况。
这是设置观察者的代码:
// stored in View Controller
private var playerStateObservation: NSKeyValueObservation?
@objc var player : AVPlayer?
// setting KVO after initialising AVPLayer
playerStateObservation = observe(\.player?.timeControlStatus) { [weak self] (object, change) in
let playing = self?.player?.timeControlStatus == .playing
self?.showPlayIcon(playing)
}
而这里 function 停止观察。 它在 ViewController deinit
中调用。
func cleanUpObserver() {
playerStateObservation?.invalidate()
playerStateObservation = nil
}
崩溃发生在以下情况:
Thread 1: EXC_BAD_ACCESS (code=1, address=0x2b1bc593c)
这是崩溃的调用堆栈。
看起来 AVPlayer 正在尝试向观察者发送通知,该观察者应该已经失效并从 memory 释放。 有没有人有类似的问题?
viewWillDisappear
将是删除观察的更好地方,伙计。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.