фатальная ошибка: неожиданно обнаружен nil при разворачивании необязательного значения с помощью toInt ()

Когда я запускаю свой код, я получаю сообщение об ошибке, указанное в заголовке. Основная проблема возникает в приведенном ниже коде. Я не очень понимаю, что происходит. Я начал (и завершил) этот проект, чтобы быстро сделать трекер бинго во время бета-тестирования, но, видимо, изменился синтаксис или что-то в этом роде. Я бы предпочел простое исправление с объяснением, почему мое решение больше не работает. Я предоставил весь свой код и был бы признателен, если бы его никто не использовал повторно, но я не могу вас остановить. Благодарю за помощь.

if ((newCardB1?.text.toInt()) != nil) // this is not nil
    {
        println(newCardB1?.text); // this prints out "Optional("1") when i run it but i only want the 1
    }
    else
    {
        println("error" );
    }
    let B1: Int = "\(newCardB1?.text)".toInt()!; //this is where the problem starts
    let B2: Int = "\(newCardB2?.text)".toInt()!;

PS: У меня ограниченный опыт программирования на Swift, но большой на Java. Любые советы по переключению вперед и назад также будут оценены и не стесняйтесь указывать любые другие проблемы или плохие методы кодирования, чтобы я мог их исправить.


person user3743262    schedule 06.02.2015    source источник
comment
вы можете начать удалять все точки с запятой и пропускать типы.   -  person Leo Dabus    schedule 06.02.2015


Ответы (1)


Измените все операторы типа let B1: Int = "(newCardB1? .Text)". ToInt () !; на этот шаблон: let B1: Int = (newCardB1? .Text ) !. toInt ()!. Причина: newCardB1? .Text уже является строкой. Если вы интерполируете его с помощью «()», я не уверен, где он окажется. Также обратите внимание на! в (newCardB1? .text) !. Без него код не скомпилируется.

Что касается вашего стиля, то ясно, что вы из Java. Точка с запятой в Swift используется редко. В остальном стиль в порядке. Возможно, немного многословно.

person Syed Tariq    schedule 06.02.2015
comment
Спасибо! Кажется, это исправило. - person user3743262; 07.02.2015