Я не уверен, правильно ли я понимаю, что вы имеете в виду, но я постараюсь изо всех сил. Таким образом, кажется, что в каждом методе, при котором нажимается кнопка, переменная selectedAnswer
всегда пуста, что не позволяет вам настроить свой selectedAnswerArray
. Я также хотел бы внести несколько предложений в ваш код, чтобы он был немного чище, но не усложнялся.
Во-первых, вы хотите избавиться от логического оператора selectedButton == RCT1
, который у вас есть для каждого if, поскольку вы устанавливаете переменную равной RCT1 прямо перед операторами if. Следовательно, этот оператор всегда будет истинным.
Во-вторых, если нет другого кода, который находится под последним оператором else, вы можете избавиться от него. Желательно включать только последний оператор else, когда есть фрагмент кода, который вы хотите выполнить, если все остальные операторы if / else if ложны.
Наконец, чтобы ответить на ваш вопрос, вы должны присвоить значение переменной selectedAnswer
, если вы хотите добавить значение в массив selectedAnswerArray
. Исходя из вашего текущего кода, ни один из операторов if не будет выполняться, кроме последнего оператора else (под которым нет кода), потому что selectedAnswer
всегда пусто. Следовательно, вы можете захотеть присвоить значение, такое как «test1» или что-то в этом роде, чтобы выполнялся один из операторов if.
Чтобы дать вам более чистую версию вашего кода, вот что я предложил *. 1015 *
@IBAction func RCT1Select(_ sender: Any) {
dataSource = ["test1", "test2", "test3", "test4"]
selectedButton = RCT1
//change the value of selectedAnswer so that one of the if statements will execute
//I got rid of selectedButton == RCT1 since that will always return true
if selectedAnswer == "test1"{
selectedAnswerArray[0] = "test1"
}
else if selectedAnswer == "test2"
{
selectedAnswerArray[0] = "test2"
}
else if selectedAnswer == "test3"
{
selectedAnswerArray[0] = "test3"
}
else if selectedAnswer == "test4"
{
selectedAnswerArray[0] = "test4"
}
//Don't need a final else statement if nothing is going to run under that
addTransparentView(frames: RCT1.frame)
}
Очевидно, что этот код может быть намного чище, но, поскольку вы новичок, я надеюсь, что вы, по крайней мере, поймете некоторые из моих предложений. Основываясь на вашем опыте, я рекомендую посмотреть этот подкаст, который обучает Свифта, по ссылке ниже
https://podcasts.apple.com/us/podcast/developing-ios-11-apps-with-swift/id1315130780
Если вы посмотрите первую серию, профессор обратится к множество распространенных ошибок, которые новички совершают более подробно, чтобы вы могли их понять.
Удачи и, надеюсь, я исправил вашу проблему