[英]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.