2016-09-25 4 views
0

Ich bin ein Projekt von Xcode 7 iOS 9 Swift 2 bis 8 Xcode iOS 10 Swift 3. Umwandlung lasse ich Xcode auf die neueste konvertieren und produziert:imageWithSize in swift3

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

Das resultierende Code stürzt die App und öffnet den Fehler:

- [_ SwiftValue imageWithSize]: unerkannten Selektor Instanz 0x17008cdf0 gesendet *** Beenden app aufgrund abgefangene Ausnahme 'NSInvalidArgumentException', Grund: ‚- [_ SwiftValue imageWithSize]: Unbekannter Selektor geschickt Beispiel

Für Vollständigkeit, war die ursprüngliche Linie in Xcode 7 Swift 2:

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

Was ist der richtige Weg ist ein Bild in Swift 3 bis Größe?

Antwort

1

valueForProperty kehrt Any?, müssen Sie den Wert auf den tatsächlichen Typ

if let artWork = delegate.musicPlayer.nowPlayingItem?.value(forProperty: MPMediaItemPropertyArtwork) as? MPMediaItemArtwork { 
    let imageForButton = artWork.image(at: CGSize(width: 300, height: 300)) 
} 
+0

musste ich nutzen ‚wie!‘ Werfen statt 'wie?' aber das hat es behoben. Vielen Dank! – rocketman240