Swift 2 中的 MPNowPlayingInfoCenter nowPlayingInfo 错误
MPNowPlayingInfoCenter nowPlayingInfo error in Swift 2
这适用于 Swift 1,但在 Swift 2 中报告错误:
let image:UIImage = UIImage(named: getStringForLanguage(french: "lock_en", english: "lock_fr.") as! String)!
let albumArt = MPMediaItemArtwork(image: image)
let songInfo: NSMutableDictionary = [
MPMediaItemPropertyTitle: "",
MPMediaItemPropertyArtist: "",
MPMediaItemPropertyArtwork: albumArt
]
MPNowPlayingInfoCenter.defaultCenter().nowPlayingInfo = songInfo // this reports the error
错误信息:
Cannot assign a value of type 'NSMutableDictionary' to a value of type '[String : AnyObject]?'
你完全听懂了我的评论。 :)
我的意思是 .nowPlayingInfo
的类型现在是 Swift 字典 [String : AnyObject]?
,而不是来自 Foundation 的 NSMutableDictionary
。
并且由于 Swift 2 的编译器正确地推断出字典的类型,因此无需声明类型。
随便写:
let songInfo = [
MPMediaItemPropertyTitle: "",
MPMediaItemPropertyArtist: "",
MPMediaItemPropertyArtwork: albumArt
]
如果您需要明确,正确的类型不是 Dictionary
(尽管它有效),而是 [String : AnyObject]?
:
let songInfo: [String: AnyObject]? = [
MPMediaItemPropertyTitle: "",
MPMediaItemPropertyArtist: "",
MPMediaItemPropertyArtwork: albumArt
]
该类型是可选的,因为 .nowPlayingInfo
属性 可以设置为 nil。
这适用于 Swift 1,但在 Swift 2 中报告错误:
let image:UIImage = UIImage(named: getStringForLanguage(french: "lock_en", english: "lock_fr.") as! String)!
let albumArt = MPMediaItemArtwork(image: image)
let songInfo: NSMutableDictionary = [
MPMediaItemPropertyTitle: "",
MPMediaItemPropertyArtist: "",
MPMediaItemPropertyArtwork: albumArt
]
MPNowPlayingInfoCenter.defaultCenter().nowPlayingInfo = songInfo // this reports the error
错误信息:
Cannot assign a value of type 'NSMutableDictionary' to a value of type '[String : AnyObject]?'
你完全听懂了我的评论。 :)
我的意思是 .nowPlayingInfo
的类型现在是 Swift 字典 [String : AnyObject]?
,而不是来自 Foundation 的 NSMutableDictionary
。
并且由于 Swift 2 的编译器正确地推断出字典的类型,因此无需声明类型。
随便写:
let songInfo = [
MPMediaItemPropertyTitle: "",
MPMediaItemPropertyArtist: "",
MPMediaItemPropertyArtwork: albumArt
]
如果您需要明确,正确的类型不是 Dictionary
(尽管它有效),而是 [String : AnyObject]?
:
let songInfo: [String: AnyObject]? = [
MPMediaItemPropertyTitle: "",
MPMediaItemPropertyArtist: "",
MPMediaItemPropertyArtwork: albumArt
]
该类型是可选的,因为 .nowPlayingInfo
属性 可以设置为 nil。