我怎么能有一个有两个以上“if”陈述的IBAction?

我正在创build一个测验应用程序,根据测验结果显示一些信息。 现在我被卡住了。 测验应用程序很简单,4个答案和一个问题。 每个button切换到下一个问题的看法似乎是太多的代码,所以我想出了这个。 如果每个button在按下时会改变问题和答案呢? 我将如何做到这一点? 现在,我的答案“A”的代码是这样的:

-(IBAction)a { switch(questionNumber) { case 0: { question.text = @"How Much Do You Use Suppressed Weapons?"; } break; case 1: { question.text = @"Do You Like Sleight of Hand?"; answerA.text = @"Yes"; answerB.text = @"No"; [answerC setHidden:YES]; [answerD setHidden:YES]; [answerButton3 setHidden:YES]; [answerButton4 setHidden:YES]; } break; } 

}

这不起作用,所以我希望去“如果”声明path。 我如何为每个字母答案编码? 我在想这样的事情:

– (IBAction)a {if(questionNumber = 0){question.text = @“无论问题是什么”;

然后在每个问题之后,它会在问题编号上加1。 并在下一次按下时,它会将问题文本更改为其他内容,并更改字母答案的标签。 任何帮助将不胜感激。 谢谢!!!

相关问题: .m文件中的一个IBAction中有多个if语句不起作用

一个switch语句对于你正在做的事情应该是正确的,但是你的语法有点不合适,使用这个:

 -(IBAction)a { switch(questionNumber) { case 0: question.text = @"How Much Do You Use Suppressed Weapons?"; break; case 1: question.text = @"Do You Like Sleight of Hand?"; answerA.text = @"Yes"; answerB.text = @"No"; [answerC setHidden:YES]; [answerD setHidden:YES]; [answerButton3 setHidden:YES]; [answerButton4 setHidden:YES]; break; default: break; } } 

一个很好的例子可以在这里find: http : //www.techotopia.com/index.php/The_Objective-C_switch_Statement


但是,我认为一个更好的select是将一个问题对象包含所有你需要的属性,然后按照正确的顺序排列这些对象。 然后,你所需要做的是通过索引(questionNumber)把问题拉出来,并将每个属性映射到你的接口。 甚至可以将值存储在plist中,然后阅读,以便您可以轻松地编辑/添加问题而不必硬编码任何内容。

这里是一个快速教程阅读plist到NSArray 。 使用NSDictionary对象的第二个例子可能是最简单的。 每个字典都可以是一个具有适当属性的问题。 然后,您可以将这些值从字典中提取(您通过索引从数组中提取这些值)。