Swift Nested If операторы не компилируются - PullRequest
0 голосов
/ 17 июня 2019

Мне нужно иметь вложенные «операторы If» и я не могу заставить их работать - продолжаю получать сообщение об ошибке - ожидаемое выражение прямо в последней фигурной скобке.

Код ниже - то, что я пробовал:

if weightLabel.text == "Weight (lbs)" {
      if pickerView == heightPicker {
            let titleRow = height[row]
             return titleRow
      } else if pickerView == weightPicker {
                let titleRow = weight[row]
                return titleRow
              }
         return ""
        else if weightLabel.text == "Weight (kgs)" {
            if pickerView == heightPicker {
                let titleRow = heightCM[row]
                return titleRow
            }
            else if pickerView == weightPicker {
                let titleRow = weightKG[row]
                return titleRow
            }
            return ""
         }
 }

Может кто-нибудь взглянуть на мой текущий код и помочь?

Ответы [ 2 ]

1 голос
/ 17 июня 2019

Должно быть так:

func getWeight() -> String {
    if weightLabel.text == "Weight (lbs)" {
        if pickerView == heightPicker {
            let titleRow = height[row]
            return titleRow
        }
        else if pickerView == weightPicker {
            let titleRow = weight[row]
            return titleRow
        }
        return ""
    }
    else if weightLabel.text == "Weight (kgs)" {
        if pickerView == heightPicker {
            let titleRow = heightCM[row]
            return titleRow
        }
        else if pickerView == weightPicker {
            let titleRow = weightKG[row]
            return titleRow
        }
        return ""
    }
    return ""
}
0 голосов
/ 17 июня 2019

Поскольку у вас есть операторы возврата везде, вы можете пропустить все else

if weightLabel.text == "Weight (lbs)" {
    if pickerView == heightPicker {
        return height[row]
    }
    if pickerView == weightPicker {
        return weight[row]
    }
}

if weightLabel.text == "Weight (kgs)" {
    if pickerView == heightPicker {
        return heightCM[row]
    }

    if pickerView == weightPicker {
         return weightKG[row]
    }
}
return ""

Другой способ сделать это - использовать локальную переменную, которая задается в предложениях if / else, а затем возвращает

var titleRow = ""
if weightLabel.text == "Weight (lbs)" {
    if pickerView == heightPicker {
        titleRow = height[row]
    } else if pickerView == weightPicker {
        titleRow = weight[row]
    }
} else if weightLabel.text == "Weight (kgs)" {
    if pickerView == heightPicker {
        titleRow = heightCM[row]
    } else if pickerView == weightPicker {
        titleRow = weightKG[row]
    }
}

return titleRow
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...