如何在Swift 4中使用Swift 3的已废弃语法

ric*_*ick 3 xcode ios avcapture swift

录制视频,同时设置视频编解码器如下:

sessionOutput.outputSettings = [AVVideoCodecKey: AVVideoCodecTypeJPEG]
Run Code Online (Sandbox Code Playgroud)

XCode中说,'AVVideoCodecTypeJPEG' has been renamed to 'AVVideoCodecType.jpeg''AVVideoCodecTypeJPEG' was obsoleted in Swift 3它暗示Replace 'AVVideoCodecTypeJPEG' with 'AVVideoCodecType.jpeg'

在这之后,XCode说'jpeg' is only available on iOS 11.0 or newer.

问题是我必须使用iOS 10并且想要使用Swift 4.

有没有任何解决方案可以在iOS 10的Swift 4中使用这样的功能?

And*_*ini 12

我认为解决此类问题的正确方法是使用新的AVVideoCodecType.jpeg和已弃用的方法AVVideoCodecJPEG,这样做:

if #available(iOS 11.0, *) {
    sessionOutput.outputSettings = [AVVideoCodecKey: AVVideoCodecType.jpeg]
} else {
    sessionOutput.outputSettings = [AVVideoCodecKey : AVVideoCodecJPEG]
}
Run Code Online (Sandbox Code Playgroud)