我已将代码更新为Xcode 9中的Swift 4。但是现在,Avplayer正在下面的观察者崩溃是它崩溃的代码。
addObserver(self, forKeyPath: "player.currentItem.duration", options: [.new, .initial], context: &playerViewControllerKVOContext)
,日志为
由于未被发现的例外,终止应用程序 'nsunknownekeyexception',原因:'[Addobserver:forkeypath:@" player.currentitem.duration"选项:5 上下文:0x10FF74AC8]已发送到不符合KVC的对象 对于"播放器"属性。'
swift没有自己的钥匙值观察者,因此对于Swift 4,我们必须添加:
@objc dynamic
在需要观察的属性之前。在您的情况下,它将是Avplayer实例。例如:
class MyPlayerCustomView: UIView {
@objc dynamic var myPlayer: AVPlayer?
}
希望这能解决您的问题。它确实解决了我的!