Почему бы вам не пойти по другому пути
if myOutput != nil && data?.weight != nil {
// Your logic here
}
else {
bmiLabel.text = "--"
}
Или, возможно, заменить if
на if-let
в целом, чтобы обеспечить безопасное развертывание и избавиться от необязательной цепочки и / или принудительное развертывание
if let myOutput = myOutput, let weight = data?.weight {
// Your logic here
}
else {
bmiLabel.text = "--"
}
Или, если вы хотите ранний выход , тогда вы даже можете использовать guard-let
guard let myOutputUnwrapped = myOutput, let weight = data?.weight else {
bmiLabel.text = "--"
return
}
/* Your logic here */
Преимущества if-let
и guard-let
в том, что вы уже получаете развернутое значение для работы, поэтому вам не нужно беспокоиться о !
и ?
с переменными.