Ich bin ein wenig verwirrt über einen Konvertierungsfehler.Xcode 8.0 und Swift 3.0 Konvertierung: Suche nach Erklärung für einen bestimmten Konvertierungsfehler
wanderte ich mein Projekt Form Swift 2.3 Swift 3,0
func updateCelsiusLabel() {
if let value = celsiusValue {
//This was the original code (that worked but is) failing after migration
//due to: Argument labels do not match any available overloads
celsiusLabel.text = numberFormatter.string(from: NSNumber(value))
//This is my code trying to fix this issue and the project is now compiling
//and everything is fine
celsiusLabel.text = numberFormatter.string(from: value as NSNumber)
}
else { celsiusLabel.text = "???"
}
}
Zuerst dachte ich, dass in Swift 3.0 die Besetzung Type(value)
jetzt verboten war, aber ich überprüft und ich absolut keine Compiler-Warnung. Kann mir jemand sagen, was das Problem mit NSNumber(value)
ist?
Soweit ich es verstehe value as NSNumber
und NSNumber(value)
sollte das gleiche sein.
Ok danke, das ist eine Art komische Entscheidung von Apple, aber ich verstehe es jetzt. – Ruvi