Я разбираю данные json, используя SwiftyJson из API погоды. И у меня есть список факультативных данных, которые я добавил в один оператор охраны, чтобы сделать код более простым и эффективным. Но, к сожалению, в списке опций я иногда имею значения nil из проанализированных данных API, поэтому оператор переходит к else и ничего не возвращает. Должен ли я включать операнды else в каждый факультативный или есть способ продолжить и вернуть найденные значения non nil в инструкции else?Операции гвардии для опций - это нуль в swift
Вот мой код:
Вот код после разбора данных, который изменяет метки на раскадровке.
if self.segmentedControl.selectedSegmentIndex == 0 {
UIApplication.sharedApplication().applicationIconBadgeNumber = Int(round(cTemp))
self.tempLabel.text = String(Int(round(cTemp))) + "˚"
self.humidityLabel.text = String(Int(round(cHumidity*100))) + "%"
self.pressureLabel.text = String(Int(round(cPressure))) + NSLocalizedString(" mBar", comment: "milli Bar")
self.windSpeedLabel.text = String(Int(round(cWindSpeed))) + NSLocalizedString(" Km/h", comment: "Kilo fe El sa3a")
self.realFeelLabel.text = String(Int(round(cFeelsLike))) + "˚"
self.windDirectionLabel.text = self.windDirectionNotation(cWindDirection)
self.rainChanceLabel.text = String(Int(round(cRainChance * 100))) + "%"
// self.visibilityLabel.text = String(Int(round(cVisibility))) + NSLocalizedString(" Km", comment: "Km")
self.descriptionLabel.text = cSummary
self.descriptionMoreLabel.text = cDailySummary
self.bgImage.image = self.bgPicker(cIconString) //Change BG according to currently weather conditions.
} else {
self.tempLabel.text = String(Int(round(cTemp))) + "˚"
self.humidityLabel.text = String(Int(round(cHumidity*100))) + "%"
self.pressureLabel.text = String(Int(round(cPressure))) + NSLocalizedString(" mBar", comment: "milli Bar")
self.windSpeedLabel.text = String(Int(round(cWindSpeed))) + NSLocalizedString(" mph", comment: "meel fee el sa3a")
self.realFeelLabel.text = String(Int(round(cFeelsLike))) + "˚"
self.windDirectionLabel.text = self.windDirectionNotation(cWindDirection)
self.rainChanceLabel.text = String(Int(round(cRainChance * 100))) + "%"
// self.visibilityLabel.text = String(Int(round(cVisibility))) + NSLocalizedString(" mi", comment: "meel")
self.descriptionLabel.text = cSummary
self.descriptionMoreLabel.text = cDailySummary
self.bgImage.image = self.bgPicker(cIconString) //Change BG according to currently weather conditions.
}
Что вы хотите сделать, если один из вариантов является нулем? Другими словами: если вы не хотите прерывать, почему вы тестируете все эти значения в первую очередь? Ваши 'cTemp' и т. Д. Являются чисто локальными переменными, вы ничего не делаете с ними, так что же является целью вашего кода? – matt
Я хочу пренебрегать им и продолжать операции. Опубликовать текущие найденные данные на ярлыках раскадровки. Или, может быть, мне нужно попробовать поставить весь оставшийся код в инструкции else? Но данные будут неполными. Потому что он возвращается, прежде чем проверять все опции, найденные в инструкции охраны. –
Хорошо, круто. Итак, где же вы это делаете? Вам нужно показать эту часть своего кода, если вы хотите помочь переписать код. – matt