Просто сравните sender
с кнопкой:
if sender === leftButtonLabel {
// left clicked
} else {
// right clicked
}
Относительно вашей структуры Questions
, вероятно, было бы лучше сказать, какой ответ является правильным, а не повторять его:
Questions(q: "2 + 2", button1: "4", button2: "6", leftCorrect: true)
Тогда проверка на правильный ответ будет выполняться следующим образом:
let leftClicked = (sender === leftButtonLabel)
let correct = (leftClicked == userQuestions[questionNumber].leftCorrect)
На самом деле, расширяя бит для нескольких ответов, это может выглядеть так:
Questions(q: "2 + 2", possibleAnswers: ["4", "6"], correctIndex: 0]
с помощью
struct Questions {
let q: String
let possibleAnswers: [String]
let correctIndex: Int
}
помещение ваших кнопок в массив:
var answerButtons: [UIButton] {
return [leftButtonLabel, rightButtonLabel]
}
Задание вопросов:
for (possibleAnswer, button) in zip(question.possibleAnswers, buttons) {
button.setTitle(possibleAnswer, for: .normal)
}
И проверка правильности ответа:
let buttonIndex = buttons.index(of: sender) ?? 0
let answeredCorrectly = (question.correctIndex == buttonIndex)