Преобразование String в Int в Swift

Привет, я новичок в Swift, и я строю калькулятор в Xcode. В моей основной раскадровке у меня есть UIButton, UILabel и UITextField, которые получат номер, и нажав кнопку, текст ярлыка должен показать введенный номер + 5. В моем приложении мне нужно преобразовать String переменной до Int.

Я попробовал фрагмент ниже. Я не получил никакого значимого результата.

var e = texti.text
let f: Int? = e.toInt()
let kashk = f * 2
label.text = "\(pashm)"

Ответ 1

Чтобы сделать его чистым и Swifty, я предлагаю такой подход:

Swift 2/3

var string = "42" // here you would put your 'texti.text', assuming texti is for example UILabel

if let intVersion = Int(string) { // Swift 1.2: string.toInt()
    let multiplied = 2 * intVersion
    let multipliedString = "\(multiplied)"
    // use the string as you wish, for example 'texti.text = multipliedString'
} else {
    // handle the fact, that toInt() didn't yield an integer value
}

Ответ 2

Если вы хотите рассчитать с помощью этого нового целого, вам нужно развернуть его, поставив восклицательный знак за именем переменной:

let stringnumber = "12"
let intnumber:Int? = Int(stringnumber)

print(intnumber!+3)

Результат:

15

Ответ 3

var string = "12"
var intVersion = string.toInt()
let intMultipied = intVersion! * 2
label.text= "\(intMultipied)"

Ответ 4

Относительно того, как преобразовать строку в целое число:

var myString = "12" //Assign the value of your textfield
if let myInt = myString.toInt(){
    //myInt is a integer with the value of "12"
} else {
    //Do something, the text in the textfield is not a integer
}

if let гарантирует, что ваше значение может быть добавлено к целому числу. .toInt() возвращает необязательное целое число. Если ваша строка может быть отброшена до целого числа, она будет возвращена, а она вернется nil. Оператор if let будет выдаваться только в том случае, если ваша строка может быть отправлена ​​в целое число.

Так как новая переменная (постоянная, если быть точным) является целым числом, вы можете создать новую переменную и добавить 5 к значению вашего целого числа

var myString = "12" //Assign the value of your textfield
if let myInt = myString.toInt(){
    //myInt is a integer with the value of "12"
    let newInt = myInt + 5

    myTextfield.text = "\(newInt)"
    //The text of the textfield will be: "17" (12 + 5)
} else {
    //Do something, the text in the textfield is not a integer
}