3

I have this error: ’init(boundsSize:requestHandler:)’ is only available on iOS 10.0 or newer

in my code

let image:UIImage = UIImage(named: "image.png")!
    let albumArtwork = MPMediaItemArtwork.init(boundsSize: image.size, requestHandler: { (size) -> UIImage in
        return image
    })

How to fix it?

  • Because that is available only iOS 10.x https://stackoverflow.com/questions/41191452/mpmediaitemartwork-initimage-deprecated-in-ios-10-0 – Salman Ghumsani Jul 21 '17 at 12:17

2 Answers2

4

You can try following

if #available(iOS 10.0, *) {
    albumArtwork = MPMediaItemArtwork.init(boundsSize: image.size, requestHandler: { (size) -> UIImage in
        return image
    })
} else {
    // Fallback on earlier versions
    albumArtwork = MPMediaItemArtwork(image: image)
}

If you want to make app compatible to OS versions prior to iOS 10. Else you can just set Deployment target to new iOS 10.

Mohammad Sadiq
  • 5,070
  • 28
  • 29
0

Try this

Because this is available on 10.0 and higher version of ios. Source

Solution 1

let image:UIImage = UIImage(named: "image.png")!
        if #available(iOS 10.0, *) {
            _ = MPMediaItemArtwork.init(boundsSize: image.size, requestHandler: { (size) -> UIImage in
                return image
            })
        } else {
            // Fallback on earlier versions
            // code for lower then ios 10
            _ = MPMediaItemArtwork.init(image: image)
        }

Solution 2

Change Deployment target to 9.0 to 10.0

enter image description here

KKRocks
  • 8,222
  • 1
  • 18
  • 84