2014-06-05 15 views
9

Ho convertito un String in un Int utilizzando toInt(). Ho poi provato moltiplicandolo per 0,01, ma ottengo un errore che dice Could not find an overload for '*' that accepts the supplied argument. Ecco il mio codice:Impossibile trovare un sovraccarico per "*" che accetta l'argomento fornito

var str: Int = 0 
var pennyCount = 0.00 

str = pennyTextField.text.toInt()! 
pennyCount = str * 0.01 

Da leggere altri post sembra che la risposta ha a che fare con il tipo. Ad esempio, se il tipo è impostato come numero intero, viene visualizzato un errore simile. Ho provato a cambiare il tipo in un Int, ma questo non sembra risolvere il problema.

ho anche provato impostare il tipo di 'str' e 'pennyCount' come Floats e Doubles e tutte le combinazioni di Floats, Doubles e Ints. La mia ipotesi è che il problema ha a che fare con la conversione della funzione toInt() di un String in un Integer.

Qualcuno potrebbe aiutare a chiarire quale potrebbe essere il problema?

risposta

13

Swift sembra essere piuttosto schizzinoso a proposito di casting di tipo implicito, quindi nel tuo esempio stai moltiplicando str (un intero) di 0,01 (a doppio) in modo da risolvere l'errore, dovrai lanciarlo in questo modo:

var str: Int = 0 
var pennyCount = 0.00 
str = pennyTextField.text.toInt()! 
pennyCount = Double(str) * 0.01 
Problemi correlati