2016-09-25 45 views
0

我轉換一個項目在Xcode 7的iOS 9夫特2至8的Xcode的iOS 10夫特3.我讓Xcode中轉換爲最新,它產生:imageWithSize在Swift3

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夫特2原線是:

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

什麼是正確的方式在尺寸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)) 
} 
+0

我必須使用「作爲!」而不是'as?'但是修復了它。謝謝! – rocketman240