Swift 2.0+
Ora con Swift 2.0 puoi semplicemente usare Float(Wage.text)che restituisce un Float?tipo. Più chiara della soluzione di seguito che ritorna 0.
Se vuoi un 0valore per un non valido Floatper qualche motivo puoi usare Float(Wage.text) ?? 0che tornerà 0se non è valido Float.
Vecchia soluzione
Il modo migliore per gestire questo è il casting diretto:
var WageConversion = (Wage.text as NSString).floatValue
In realtà ho creato un extensionper utilizzare meglio anche questo:
extension String {
var floatValue: Float {
return (self as NSString).floatValue
}
}
Ora puoi semplicemente chiamare var WageConversion = Wage.text.floatValuee consentire all'estensione di gestire il ponte per te!
Questa è una buona implementazione poiché può gestire i float effettivi (input con .) e aiuterà anche a impedire all'utente di copiare del testo nel campo di input ( 12p.34o anche 12.12.41).
Ovviamente, se Apple aggiunge un floatValuea Swift, verrà generata un'eccezione, ma nel frattempo potrebbe essere carino. Se lo aggiungono in un secondo momento, tutto ciò che devi fare per modificare il tuo codice è rimuovere l'estensione e tutto funzionerà senza problemi, dal momento che stai già chiamando .floatValue!
Inoltre, le variabili e le costanti dovrebbero iniziare con una minuscola (incluso IBOutlets)