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 0
valore per un non valido Float
per qualche motivo puoi usare Float(Wage.text) ?? 0
che tornerà 0
se 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 extension
per utilizzare meglio anche questo:
extension String {
var floatValue: Float {
return (self as NSString).floatValue
}
}
Ora puoi semplicemente chiamare var WageConversion = Wage.text.floatValue
e 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.34
o anche 12.12.41
).
Ovviamente, se Apple aggiunge un floatValue
a 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
)