Вы разворачиваете его, используя if let
или guard... else
.
//If let would be optimal for your example because you are not doing much after unwrapping
for i in arrayOptional {
if let temp = i {
sum += temp
}
}
// guard...else would be useful when you have a lot to do and you don't want to keep on nesting code inside {}
for i in arrayOptional {
guard let temp = i else {
continue
}
sum += temp
}
Принудительное развертывание (!
) выполняется только в том случае, если вы хотите, чтобы приложение аварийно завершилось, или если вы уверены, что дополнительный файл не будет содержать nil
. Например: удаление из ячейки свойства UITextfield и UITextView text
является необязательным, но никогда не будет nil
.
.
Оператор слияния nil (??
) предоставляет значение по умолчанию на случай, если ваш опциональный вариант окажется равным nil
. Вы используете его при назначении необязательной переменной.