imageWithSize в Swift3

Я конвертирую проект из Xcode 7 iOS 9 Swift 2 в Xcode 8 iOS 10 Swift 3. Я позволил Xcode конвертировать в последнюю версию, и он произвел:

 let artWork = delegate.musicPlayer.nowPlayingItem?.value(forProperty: MPMediaItemPropertyArtwork)
 let imageForButton = (artWork as AnyObject).image(at: CGSize(width: 300, height: 300))

Этот результирующий код вылетает из приложения и выдает ошибку:

- [_ SwiftValue imageWithSize:]: нераспознанный селектор отправлен в экземпляр 0x17008cdf0 *** Завершение работы приложения из-за необработанного исключения "NSInvalidArgumentException", причина: '-[_SwiftValue imageWithSize:]: нераспознанный селектор отправлен в экземпляр

Для полноты исходной строки в Xcode 7 Swift 2 было:

let imageForButton = artWork?.imageWithSize(CGSizeMake(300, 300))

Как правильно выбрать размер изображения в Swift 3?

1 ответ

Решение

valueForProperty возвращается Any?вам нужно привести значение к фактическому типу

if let artWork = delegate.musicPlayer.nowPlayingItem?.value(forProperty: MPMediaItemPropertyArtwork) as? MPMediaItemArtwork {
    let imageForButton = artWork.image(at: CGSize(width: 300, height: 300))
}
Другие вопросы по тегам