rick
rick

Reputation: 1057

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?

Upvotes: 4

Views: 2030

Answers (1)

mugx
mugx

Reputation: 10105

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]
}

Upvotes: 13

Related Questions