2015-06-28 3 views
1

код выделен зеленым цветом с помощью Xcode (Thread 1: EXC_BAD_INSRTUCTION)Фатальная ошибка в Xcode - Я знаю причину, но не знаю, как это исправить

amountDueLabel.text = String(HomeViewController().getAllowanceDue()) 

функции getAllowanceDue()

func getAllowanceDue() -> Int{ 
    var allowance = allowanceTextField.text.toInt() 
    return allowance! 
} 

Спасибо большое!

Полегче на меня - я новичок в разработке IOS

ответ

1

В Swift в отличие от Objective C, вы должны явно позволить компилятору знать, что переменная может быть «ноль» в будущем, пометив эту переменную как опция (?).

toInt() метод также возвращает «необязательное целочисленное значение», что означает, что метод toInt() также может возвращать значение «nil», если он не может преобразовать поставленное строковое значение в целочисленное значение.

Здесь вы разворачиваете дополнительную стоимость Int с помощью allowance!. Но прежде чем разворачивать необязательное значение, вы должны проверить, не является ли необязательное значение «ноль».

func getAllowanceDue() -> Int { 
    if let allowance = anotherString.toInt() { 
     return allowance 
    } 
    return -1 
} 

Проверив if let allowance = anotherString.toInt() мы фактически используя концепцию Optional Binding в Swift, чтобы проверить, содержит ли факультативное значение.

+0

@richbrz: Это решение работает для вас? – tek3

+0

Да, я очень ценю своевременный ответ. – richbrz

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