gpt4 book ai didi

ios - 在结束之前对每个案例进行一次切换?

转载 作者:行者123 更新时间:2023-11-29 10:48:24 26 4
gpt4 key购买 nike

现在我做了一个测验,利用开关来提问。该开关有 100 个案例,对应 100 个问题,当被调用时,它会随机选择一个案例来实现。因此,在我的 ViewController 上,我有一个标签,用于指示将调用什么问题,以及四个按钮(用于每个可能的答案)。我的问题是.. 有没有一种方法可以利用一个按钮来插入开关内的一个新案例?我希望能够在退出按钮出现之前完成整个切换。

这是我所拥有的示例:

-(void)Category1{

NSUInteger QuestionSelected= (arc4random() %100);

switch (QuestionSelected) {
case 0:
QuestionText.text = [NSString stringWithFormat:@"First question here"];
[Answer1 setTitle:@"Possible answer selection here" forState:UIControlStateNormal];
[Answer2 setTitle:@"Possible answer selection here" forState:UIControlStateNormal];
[Answer3 setTitle:@"Possible answer selection here" forState:UIControlStateNormal];
[Answer4 setTitle:@"Possible answer selection here" forState:UIControlStateNormal];
Answer1Correct = YES;
CorrectAnswerDisplay.text = [NSString stringWithFormat:@"Correct Answer to be displayed"];
break;
case 1:
QuestionText.text = [NSString stringWithFormat:@"First question here"];
[Answer1 setTitle:@"Possible answer selection here" forState:UIControlStateNormal];
[Answer2 setTitle:@"Possible answer selection here" forState:UIControlStateNormal];
[Answer3 setTitle:@"Possible answer selection here" forState:UIControlStateNormal];
[Answer4 setTitle:@"Possible answer selection here" forState:UIControlStateNormal];
Answer1Correct = YES;
CorrectAnswerDisplay.text = [NSString stringWithFormat:@"Correct Answer to be displayed"];
break;

如果您有答案,请解释答案的工作原理。我还是 objective-c 的新手,正在构建这个用于剪切学习的应用程序。或者我只是缺少一个明显的答案?如果可能的话,我希望使用一个按钮来实现这一点,因为我已将其设置为一旦您选择了一个答案,Answer1-4 按钮就会消失,并且 CorrectAnswerDisplay 标签会出现以显示正确答案。非常感谢你们的帮助!这个网站一直是我的救星,我一直在尽我所能帮助别人!

编辑:这里是关于它现在如何运行的图片:

Category Selection

Question

Correct/Incorrect Screen

现在我将其设置为返回类别选择。正是那个正确/不正确的屏幕让我很难。我试图让最终结果成为“下一步”按钮而不是“下一个类别”按钮,并在到达之前完成所有问题。

最佳答案

@H2CO3 关于删除 break 语句的说法是正确的。这样做会落空,more info here .

话虽如此,我认为您试图以错误的方式解决这个问题。与其对所有这些值进行硬编码,不如尝试使用字典数组的更动态的方法。每个字典都可以存储有关问题和可能答案的信息。这样做,您可以用大致如下的内容替换整个开关:

- (void)categoryOne
{
NSUInteger questionSelected = arc4random_uniform((u_int32_t)self.arrayOfQuestions.count);

NSDictionary *thisQuestion = self.arrayOfQuestions[questionSelected];

[questionsLabel setText:thisQuestion[@"question"]];

[answerOneButton setTitle:thisQuestion[@"answer1"] forState:UIControlStateNormal];
[answerTwoButton setTitle:thisQuestion[@"answer2"] forState:UIControlStateNormal];
[answerThreeButton setTitle:thisQuestion[@"answer3"] forState:UIControlStateNormal];
[answerFourButton setTitle:thisQuestion[@"answer4"] forState:UIControlStateNormal];

answer1Correct = YES;
correctAnswerDisplay.text = thisQuestion[@"answer"];
}

作为额外的旁注,实例和实例方法应该使用以小写字母开头的驼峰式命名法,这是 Objective C 中的约定,并且如果您不需要使用 +[NSString stringWithFormat: '仅设置单个字符串的内容。

关于ios - 在结束之前对每个案例进行一次切换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21504592/

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