2015-08-29 2 views
1

Я довольно новичок в разработке iOS. Я не могу понять, что я делаю неправильно для жизни меня. Я получаюSwift неожиданно нашел нуль при разворачивании необязательного значения на переменной переменной

“Thread 1: EXC_BAD_INSTRUCTION (code=EXC_l386_NVOP, subcode=0x0)”

ошибка с переменной menCalories. В отладчике я получаю сообщение об ошибке:

“fatal error: unexpectedly found nil while unwrapping an Optional value"

Вот мой код. Любая помощь будет очень высоко ценится.

@IBAction func calculate(sender: AnyObject) { 

    var ageInt:Int? = age.text!.toInt() 
    var weightInt:Int? = weightLabel.text!.toInt() 
    var heightInt:Int? = height.text!.toInt() 

    if gender.selectedSegmentIndex == 0 { 

     let menCalories:Double = 66.47 + (13.75 * Double(weightInt!)) + (5.0 * Double(heightInt!)) - (6.75 * Double(ageInt!)) 

     calories.text = "\(menCalories)" 

    } 

    if gender.selectedSegmentIndex == 1 { 

    } 

} 
+0

также убедиться, что ваше сегментированное управление подключено как @IBOutlet weak va – alex

ответ

2

“fatal error: unexpectedly found nil while unwrapping an Optional value"

Это происходит, когда Optional не имеет никакого значения.

Что вам нужно сделать, это проверить, что переменная не является nil, прежде чем вы ее распакуете.

Например, assumming ageInt является Optional с nil значения:

if ageInt != nil { 
    // Do Something 
} 

Или безопасно разворачивать значение с if let заявления:

if let safeAgeInt = ageInt { 
    // Do Something with safeAgeInt 
} 
Смежные вопросы