如何在 Swift 4 中使用 Swift 3 的过时语法
How to Use Obsoleted Syntax of Swift 3 in Swift 4
录制视频,同时设置视频编解码器如下:
sessionOutput.outputSettings = [AVVideoCodecKey: AVVideoCodecTypeJPEG]
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。
是否有任何解决方案可以在 Swift 4 和 iOS 10 中使用这样的功能?
我认为解决此类问题的正确方法是使用新的 AVVideoCodecType.jpeg
和已弃用的 AVVideoCodecJPEG
,这样做:
if #available(iOS 11.0, *) {
sessionOutput.outputSettings = [AVVideoCodecKey: AVVideoCodecType.jpeg]
} else {
sessionOutput.outputSettings = [AVVideoCodecKey : AVVideoCodecJPEG]
}
录制视频,同时设置视频编解码器如下:
sessionOutput.outputSettings = [AVVideoCodecKey: AVVideoCodecTypeJPEG]
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。
是否有任何解决方案可以在 Swift 4 和 iOS 10 中使用这样的功能?
我认为解决此类问题的正确方法是使用新的 AVVideoCodecType.jpeg
和已弃用的 AVVideoCodecJPEG
,这样做:
if #available(iOS 11.0, *) {
sessionOutput.outputSettings = [AVVideoCodecKey: AVVideoCodecType.jpeg]
} else {
sessionOutput.outputSettings = [AVVideoCodecKey : AVVideoCodecJPEG]
}