2016-09-25 38 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