gpt4 book ai didi

ios - 数组中的最后一个元素为 nil

转载 作者:可可西里 更新时间:2023-11-01 02:14:54 24 4
gpt4 key购买 nike

我创建了一个简单的测验应用程序,它会计算用户正确回答了多少问题,并将它们放在另一个 View 的标签中。问题是,当用户正确回答最后一个问题(数组)时,它不会像处理其他问题那样在我的计数器中计数,而只会切换 View 。因此,如果最后一个问题回答正确,则不会在下一个 View 中显示 4 个正确,而只会显示 3 个。还没想好有什么帮助吗?我的代码:

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()
}
}

经过一些调试我发现问题.removeAtIndex(qNumber)是删除数组的那个(removeAtIndex 用于防止已经回答的问题再次出现)

我将 qNumber 声明为:

qNumber = random() % questions.count

如何将 qNumber 设置为当前数组,在回答后删除?

我正在切换 View :

否则{

   NSLog("done")

self.performSegueWithIdentifier("Segue1", sender: self)
}

最佳答案

显示最后一个问题后,您将其从数组中删除,使数组为空。然后,在回答后,您将:

 if answerNumber == 0 {
pickQuestion()
count += 1
}

函数中的代码检查 questions.count 是否大于 0(事实并非如此),然后执行转场。 segue 发生在计数更新之前。尝试更改 block 以允许首先更新计数:

if answerNumber == 0 {
count += 1
pickQuestion()
}

关于ios - 数组中的最后一个元素为 nil,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39312219/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com