sách gpt4 ăn đã đi

ios - Swift 中的 AVPlayer 观察者 - 收到消息但未处理

In lại 作者:IT王子 更新时间:2023-10-29 05:19:07 25 4
mua khóa gpt4 giày nike

我正在尝试用纯 Swift 为 AVPlayer 实现一个观察者。

我收到错误消息:“已收到消息但未处理”。是因为我正在使用的观察者的构造函数中的对象参数是 không ?

我已将我的示例代码放在下面:

    player.addObserver(self, forKeyPath: "status", options:NSKeyValueObservingOptions(), context: nil)
player.addObserver(self, forKeyPath: "playbackBufferEmpty", options:NSKeyValueObservingOptions(), context: nil)
player.addObserver(self, forKeyPath: "playbackLikelyToKeepUp", options:NSKeyValueObservingOptions(), context: nil)
player.addObserver(self, forKeyPath: "loadedTimeRanges", options: NSKeyValueObservingOptions(), context: nil)


private func deallocObservers(player: AVPlayer) {
player.removeObserver(self, forKeyPath: "status")
player.removeObserver(self, forKeyPath: "playbackBufferEmpty")
player.removeObserver(self, forKeyPath: "playbackLikelyToKeepUp")

}

//observer for av play
override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) {
if keyPath == "status" {
print("Change at keyPath = \(keyPath) for \(object)")
}

if keyPath == "playbackBufferEmpty" {
print("playbackBufferEmpty - Change at keyPath = \(keyPath) for \(object)")
}

if keyPath == "playbackLikelyToKeepUp" {
print("Change at keyPath = \(keyPath) for \(object)")
}
}

câu trả lời hay nhất

通常,当注册的观察者解除分配并且之后触发 KVO 事件时,会发生此问题。为了修复,您需要在对象被释放之前移除所有观察者。

在您的情况下,您注册了 4 个 KVO 更改并仅删除了 3 个。以下 KVO 观察器未在任何地方删除,它导致了问题。

player.addObserver(self, forKeyPath: "loadedTimeRanges", options: NSKeyValueObservingOptions(), context: nil)

更改您的 deallocObservers: 方法,例如:

private func deallocObservers(player: AVPlayer) {
player.removeObserver(self, forKeyPath: "status")
player.removeObserver(self, forKeyPath: "playbackBufferEmpty")
player.removeObserver(self, forKeyPath: "playbackLikelyToKeepUp")
player.removeObserver(self, forKeyPath: "loadedTimeRanges")
}

关于ios - Swift 中的 AVPlayer 观察者 - 收到消息但未处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31571001/

25 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress