Я создал простую викторину, в которой будет указано, сколько вопросов пользователь ответил правильно и поместил их в ярлык в другое представление. Проблема в том, что, когда пользователь правильно отвечает на последний вопрос (массив), он не будет подсчитываться в моем счетчике, как это происходит с другими вопросами, а только переключает вид. Таким образом, вместо того, чтобы показывать 4 в следующем виде, оно отображает только 3, если на последний вопрос был дан правильный ответ. Все еще не понял. Любая помощь? Мой код:Последний элемент в массиве nil
func pickQuestion(){
if questions.count > 0{
qNumber = random() % questions.count
questions.shuffleInPlace()
qLabel.text = questions[qNumber].question
answerNumber = questions[qNumber].answer
for i in 0..<buttons.count{
buttons[i].setTitle(questions[qNumber].answers[i], forState: .Normal)
}
questions.removeAtIndex(qNumber)
}
else {
NSLog("done")
self.performSegueWithIdentifier("Segue1", sender: self)
}
}
код кнопки, где я могу проверить, является ли ответ правильным или нет:
@IBAction func btn1(sender: AnyObject) {
if answerNumber == 0 {
pickQuestion()
count += 1
}
else {
NSLog("Wrong")
pickQuestion()
}
}
После немного отладки я обнаружил, что questions.removeAtIndex (qNumber) является тот, который удаляет массив (removeAtIndex используется для предотвращения повторения вопросов, когда уже ответили)
Я объявляю qNumber как:
qNumber = random()% questions.count
Как установить qNumber как текущий массив, который будет удален после ответа?
Я переключая вид в:
еще {
NSLog("done")
self.performSegueWithIdentifier("Segue1", sender: self)
}
Не имеет значения, но вы должны следовать скоринговому соглашению о кодировании для имен переменных, то есть 'camelCase'. Все ваши переменные начинаются с символа капитала, то есть 'AnswerNumber',' QNumber' и т. Д. –
Можете ли вы добавить код, когда ответ правильный, и вы увеличиваете значение счетчика. Я думаю, что вы просто не добавляете счетчик в нужную точку и вместо этого переключаете представления, прежде чем звонить, что увеличивает счетчик. – Nik
Вы вставили код для отображения вопроса, но не для оценки ответа. – Shades