Swiftobserve(_:options:changeHandler:) newValue 总是 nil

Dee*_*rma 5 key-value-observing avfoundation ios avcapturedevice swift

我有这样的设置来观察 AVCaptureDevice deviceWhiteBalanceGains 的值变化:

@objc dynamic var videoDevice:AVCaptureDevice?
private var deviceWBGainsObservation: NSKeyValueObservation?
Run Code Online (Sandbox Code Playgroud)

然后在代码中,

deviceWBGainsObservation = videoDevice?.observe(\.deviceWhiteBalanceGains,
                     options: [.old, .new]) {[unowned self] (object, change) in

    NSLog("\(change)")
}
Run Code Online (Sandbox Code Playgroud)

问题是更改 oldValue 和 newValue 始终为零。如果我使用传统的键值观察方法就不会出现这种情况observeValue(forKeypath:...)。我究竟做错了什么?