2017-02-10 2 views
-3

Я делаю mock-пульт дистанционного управления Iphone-приложением, используя swift, и Xcode не позволяет мне использовать .toInt() в тексте UILabel. Я пытаюсь преобразовать текст с метки в целое число, и я не уверен, как это сделать. Кто-нибудь может мне помочь? Благодарю.Почему я не могу использовать .toInt() для строки в swift?

Вот мой код:

@IBAction func channelInc(_ sender: UIButton) { 
    var chnl = channel.text!.toInt() 

    if (chnl!+1 > 99) { 

    } else { 
     let newChnl = chnl!+1 
     channel.text = "\(String(newChnl))" 
    } 
} 

ответ

0

Существует не метод на классе Струнный называется toInt(). Способ сделать это в swift - использовать инициализатор для класса Int.

let number = Int("5") 
// returns a Int? (optional) 
+0

Это исправило ошибку компилятора, но теперь она дает мне ошибку времени выполнения, потому что она берет адрес строки в памяти (а не целое число, которое находится внутри строки), преобразовывая это в integer, а затем пытается добавить к нему. Вы знаете, как преобразовать число, которое находится внутри строки, в целое число? – xxx3223

+0

Это не должно происходить вообще. Не могли бы вы показать результат этого? И обновленный код. Этот инициализатор инициализации был фактически создан для этой конкретной цели в swift 2. Вы должны сделать 'let chnl = Int (channel.text!)'. Является ли 'channel' текстовым полем или чем-то подобным? Канал –

+0

- это UILabel. Эта функция - действие, привязанное к кнопке, которая должна увеличивать канал. При нажатии на кнопку, следующее сообщение об ошибке появляется: – xxx3223

Смежные вопросы