NSUnknownKeyException:被发送到一个不符合 KVC 的对象 "player" 属性
NSUnknownKeyException : was sent to an object that is not KVC-compliant for the "player" property
我已将我的代码更新为 Xcode 9 中的 swift 4。在此之前它工作正常。但是现在 AVplayer 在下面的观察者处崩溃是它崩溃的代码。
addObserver(self, forKeyPath: "player.currentItem.duration", options: [.new, .initial], context: &playerViewControllerKVOContext)
日志是
Terminating app due to uncaught exception
'NSUnknownKeyException',reason: '[ addObserver: forKeyPath:@"player.currentItem.duration" options:5
context:0x10ff74ac8] was sent to an object that is not KVC-compliant
for the "player" property.'
Swift 没有自己的 Key value observer 所以对于 Swift 4 我们必须添加:
@objc dynamic
在属性之前需要观察其值。在您的情况下,它将是 AVPlayer 实例。例如:
class MyPlayerCustomView: UIView {
@objc dynamic var myPlayer: AVPlayer?
}
希望这能解决您的问题。它确实解决了我的问题!
我已将我的代码更新为 Xcode 9 中的 swift 4。在此之前它工作正常。但是现在 AVplayer 在下面的观察者处崩溃是它崩溃的代码。
addObserver(self, forKeyPath: "player.currentItem.duration", options: [.new, .initial], context: &playerViewControllerKVOContext)
日志是
Terminating app due to uncaught exception 'NSUnknownKeyException',reason: '[ addObserver: forKeyPath:@"player.currentItem.duration" options:5 context:0x10ff74ac8] was sent to an object that is not KVC-compliant for the "player" property.'
Swift 没有自己的 Key value observer 所以对于 Swift 4 我们必须添加:
@objc dynamic
在属性之前需要观察其值。在您的情况下,它将是 AVPlayer 实例。例如:
class MyPlayerCustomView: UIView {
@objc dynamic var myPlayer: AVPlayer?
}
希望这能解决您的问题。它确实解决了我的问题!