Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to Use Obsoleted Syntax of Swift 3 in Swift 4

To record video, while setting video codec as below:

sessionOutput.outputSettings = [AVVideoCodecKey: AVVideoCodecTypeJPEG]

XCode says 'AVVideoCodecTypeJPEG' has been renamed to 'AVVideoCodecType.jpeg' and 'AVVideoCodecTypeJPEG' was obsoleted in Swift 3 and it suggests Replace 'AVVideoCodecTypeJPEG' with 'AVVideoCodecType.jpeg'

After doing that, XCode says 'jpeg' is only available on iOS 11.0 or newer.

The problem is I have to use iOS 10 and want to use Swift 4.

Is there any solution to use features like this in Swift 4 with iOS 10?

like image 406
rick Avatar asked Dec 10 '22 08:12

rick


1 Answers

I think the right way to solve such issue is to use the new AVVideoCodecType.jpeg and the deprecated one AVVideoCodecJPEG, doing so:

if #available(iOS 11.0, *) {
    sessionOutput.outputSettings = [AVVideoCodecKey: AVVideoCodecType.jpeg]
} else {
    sessionOutput.outputSettings = [AVVideoCodecKey : AVVideoCodecJPEG]
}
like image 164
Andrea Mugnaini Avatar answered Dec 28 '22 21:12

Andrea Mugnaini