Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone iOS简单游戏,从给定数据中选择答案并设置分数_Iphone_Ios_Xcode_Nsarray - Fatal编程技术网

Iphone iOS简单游戏,从给定数据中选择答案并设置分数

Iphone iOS简单游戏,从给定数据中选择答案并设置分数,iphone,ios,xcode,nsarray,Iphone,Ios,Xcode,Nsarray,我试着写一个简单的游戏,从几个问题中选择正确的答案a B或C,比如学校考试,然后数一数正确/错误的答案来得分。 我不知道如何使用NSArray存储所有问题和正确答案,以及如何设置分数。我唯一的解决办法是为每个问题创建一个新的视图,但这听起来像是一个糟糕的解决方案。 任何帮助都将受到真诚的感谢。 谢谢 ViewController.h @interface ViewController : UIViewController { IBOutlet UILabel *numPregunta; IBO

我试着写一个简单的游戏,从几个问题中选择正确的答案a B或C,比如学校考试,然后数一数正确/错误的答案来得分。 我不知道如何使用NSArray存储所有问题和正确答案,以及如何设置分数。我唯一的解决办法是为每个问题创建一个新的视图,但这听起来像是一个糟糕的解决方案。 任何帮助都将受到真诚的感谢。 谢谢

ViewController.h

@interface ViewController : UIViewController {

IBOutlet UILabel *numPregunta;
IBOutlet UILabel *pregunta;
IBOutlet UILabel *lblRespuesta1;
IBOutlet UILabel *lblRespuesta2;
IBOutlet UILabel *lblRespuesta3;
IBOutlet UILabel *lblResultado;

IBOutlet UIButton *respuesta1;
IBOutlet UIButton *respuesta2;
IBOutlet UIButton *respuesta3;

}

-(IBAction)btnRespuesta1:(id)sender;
-(IBAction)btnRespuesta2:(id)sender;
-(IBAction)btnRespuesta3:(id)sender;
-(IBAction)nextPregunta:(id)sender;

@end
ViewController.m

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController



- (void)viewDidLoad
{

numPregunta.text = @"Question 1";
pregunta.text = @"Question 1 text";
lblRespuesta1.text = @"ANSWER 1";
lblRespuesta2.text = @"ANSWER 2";
lblRespuesta3.text = @"ANSWER 3 ";


[super viewDidLoad];


}

-(IBAction)btnRespuesta1:(id)sender

{
    if(pregunta.text == @"Question 1 text")
{

    lblRespuesta1.textColor = [UIColor redColor];
    lblResultado.text = @"False! ";
    lblResultado.textColor = [UIColor redColor];

}
}


-(IBAction)btnRespuesta2:(id)sender

{
    if(pregunta.text == @"Question 1 text")
    {

        lblRespuesta2.textColor = [UIColor redColor];
        lblResultado.text = @"False! ";
        lblResultado.textColor = [UIColor redColor];

    }

}

-(IBAction)btnRespuesta3:(id)sender

{
if(pregunta.text == @"Question 1 text")
{

    lblRespuesta3.textColor = [UIColor greenColor];
    lblResultado.text = @"Nice! ";
    lblResultado.textColor = [UIColor greenColor];



}

}    



- (void)viewDidUnload
{
[super viewDidUnload];
// Release any retained subviews of the main view.
}

- (BOOL)shouldAutorotateToInterfaceOrientation: (UIInterfaceOrientation)interfaceOrientation
{
return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);
}

@end

您选择的方式是一个漫长的过程,最初您必须将所有问题、选项和答案保存在字典中 字典被添加到数组中,这使得使用变得简单

[dictionary setObject:value forKey:@"question"];
[dictionary setObject:value forKey:@"option1"];
[dictionary setObject:value forKey:@"option2"];
[dictionary setObject:value forKey:@"option3"];
[dictionary setObject:value forKey:@"option4"];
[dictionary setObject:value forKey:@"answer"];
并将其添加到数组中

[array addObject dictionary]

pregunta.text = [[array objectAtIndex:1]objectForKey:"question"];
lblRespuesta1.text = [[array objectAtIndex:1]objectForKey:"option1"];
lblRespuesta2.text = [[array objectAtIndex:1]objectForKey:"option2"];
lblRespuesta3.text = [[array objectAtIndex:1]objectForKey:"option3"];

你可以有一个问题数组,比如questionsArray,它将包含所有问题。其次,创建字典数组,它将包含所有选项和正确的结果,比如resultArray包含在0索引字典中,关键字为Answer1,Answer2,Answer3和result以及value将包含相应的值。现在取一个全局变量,该变量将存储问题编号,表示它正在显示的问题,例如问题0、问题1..等等,这只是问题数组中的问题索引。假设您正在索引0处显示问题,然后显示与该索引ie 0对应的选项,如下所示:

NSString *answer1 = [[resultArray objectAtIndex:0] valueForKey:@"Answer1"];
NSString *answer2 = [[resultArray objectAtIndex:0] valueForKey:@"Answer2"];
NSString *answer3 = [[resultArray objectAtIndex:0] valueForKey:@"Answer3"];
if(btn.tag == [[resultArray objectAtIndex:0] valueForKey:@"result"])
{
   //correct answer is selected so increment score.
}
并说正确答案为答案2,则结果键为2。 并为每个按钮提供标签,如1、2和3。 然后在按钮操作中,您可以检查用户是否选择了正确的选项,如下所示:

NSString *answer1 = [[resultArray objectAtIndex:0] valueForKey:@"Answer1"];
NSString *answer2 = [[resultArray objectAtIndex:0] valueForKey:@"Answer2"];
NSString *answer3 = [[resultArray objectAtIndex:0] valueForKey:@"Answer3"];
if(btn.tag == [[resultArray objectAtIndex:0] valueForKey:@"result"])
{
   //correct answer is selected so increment score.
}

感谢Sumanth的快速回答,我会在回家后再试并发布结果。感谢Nuzhat的快速回答,我会在回家后再试并发布结果。我找到了另一个解决方案,使用.plist文件存储所有问题和答案。如果有人感兴趣,我可以张贴代码。无论如何谢谢你Nuhat@user1447070:请张贴找到的答案。