Я нахожусь в процессе создания приложения, в котором пользователя будут опрашивать в столицах штатов. Столица и штат представили пользователю UIImage и у меня все работает нормально. Стремясь сократить объем кода, я пытаюсь выяснить, как избежать всех этих «операторов if». «Заявления if» ниже представляют четыре штата и столицы. Представьте себе эти строки еще сорок шесть раз. Это кажется немного, не так ли? Я сталкивался с троичными операторами при изучении алгоритмов и пытался использовать их для сокращения этого кода, но я не добился успеха. У меня есть два массива UIImage - один содержит города, другой - штаты. То, как мое приложение определяет правильность ответа пользователя, - это сопоставление соответствующих индексов массива.
Вот мои сокращенные массивы ...
let capitalCityList: [UIImage] = [
UIImage(named: "Montgomery")!,
UIImage(named: "Juneau")!,
UIImage(named: "Phoenix")!,
UIImage(named: "Little Rock")!
let stateWordList: [UIImage] = [
UIImage(named: "Alabama")!,
UIImage(named: "Alaska")!,
UIImage(named: "Arizona")!,
UIImage(named: "Arkansas")!
Вот первые четыре "заявления if" ...
if capitalCity.image == capitalCityList[0] && stateWord.image == stateWordList[0] {
scoreInt += 1
scoreLabel.text = String("Score: \(scoreInt)")
} else if capitalCity.image == capitalCityList[1] && stateWord.image == stateWordList[1] {
scoreInt += 1
scoreLabel.text = String("Score: \(scoreInt)")
} else if capitalCity.image == capitalCityList[2] && stateWord.image == stateWordList[2] {
scoreInt += 1
scoreLabel.text = String("Score: \(scoreInt)")
} else if capitalCity.image == capitalCityList[3] && stateWord.image == stateWordList[3] {
scoreInt += 1
scoreLabel.text = String("Score: \(scoreInt)")
} else if capitalCityWord.image == capitalCityList[4] && stateWord.image == stateWordList[4] {
scoreInt += 1
scoreLabel.text = String("Score: \(scoreInt)")