Преобразование MPMediaItemArtwork из iOS 10 в iOS 9

Я обновляю обложку альбома в Центре управления, выполняя это:

let image:UIImage = UIImage(named: title)!
let artwork = MPMediaItemArtwork.init(boundsSize: image.size, requestHandler: { (size) -> UIImage in

            return image

        })

Это прекрасно работает в iOS 10, но я хочу, чтобы мое приложение позволяло пользователям iOS 9 и 10. Всякий раз, когда я делаю это, я получаю сообщение об ошибке

init(boundsSize:requestHandler:) доступен только на iOS 10 или новее

Итак, мне нужно изменить свой код на это

let image:UIImage = UIImage(named: title)!
        if #available(iOS 10.0, *) {
            let artwork = MPMediaItemArtwork.init(boundsSize: image.size, requestHandler: { (size) -> UIImage in
                return image
            })
        } else {
            // What goes here??
        }

Я не знаю, как это сделать в iOS 9. Как бы я это сделал?

2 ответа

Вы должны использовать MPMediaItemArtwork(изображение: изображение) на iOS 9.

var artwork:MPMediaItemArtwork!
if let image = UIImage(named: imageName) {
    if #available(iOS 10.0, *) {
        artwork = MPMediaItemArtwork.init(boundsSize: image.size, requestHandler: { (size) -> UIImage in
            return image
        })
    } else {
        artwork = MPMediaItemArtwork(image: image)
    }
}
//use artwork here

До iOS 10, инициализатор для MPMediaArtwork, кроме простого init(), было init(image:),

Другие вопросы по тегам