Это печать Необязательно (1), потому что переменная itemDataJson имеет значение NULL, поэтому счет должен быть нулевым, потому что мы не знаем, имеет ли значение itemDataJson значение.
Основная проблема, которую я вижу в вашем коде, заключается в том, что вы являетесь переменными для развертывания силы. Принудительная разворачивание переменной - это запах кода (обычно, хотя я делаю это сам время от времени, но вам нужно быть осторожным).
Когда вы принудительно разворачиваете переменную, вам нужно задать себе вопрос: «Я хочу, чтобы приложение разбилось здесь, если эта переменная равна нулю?». Если ответ «да», то использование разворота силы допустимо, в противном случае вы должны создать переменную, не подлежащую обнулению или если это невозможно, вы должны использовать оператор guard в быстром.
Это может быть использовано, как это:
guard let itemDataJson = itemDataJson else {
// itemDataJson was null do something
return
}
Вы можете использовать if let
конструкцию, как хорошо, но будьте осторожны пирамиды обреченности, если вы не используете if let
конструкцию правильно. См. here для правильного использования, или используйте инструкцию охраны.
Я бы порекомендовал проверить документацию на optionals, если вы еще этого не сделали.
Спасибо! Это идеальное объяснение! – hanachan1026