2013-02-24 215 views
0

嗨我一直有一个问题的测验游戏我一直在试图创建和搜索无处不在的答案,但没有运气。我正在创建一个测验,其中包含许多问题和答案,并且答案一切正常,除非我选择答案时下一个问题不会出现。从使用NSLogs,我可以看到currentQuestion值的增量工作实际上是self.question,似乎失去了plist文件这里是我的plist代码,因为我无法发布图像。IOS plist简单测验游戏

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN""http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 
<plist version="1.0"> 
<dict> 
    <key>Questions</key> 
<array> 
    <dict> 
     <key>QuestionTitle</key> 
     <string>What is 1 + 1?</string> 
     <key>A</key> 
     <string>4</string> 
     <key>B</key> 
     <string>3</string> 
     <key>C</key> 
     <string>7</string> 
     <key>D</key> 
     <string>2</string> 
     <key>QuestionAnswer</key> 
     <string>D</string> 
    </dict> 
    <dict> 
     <key>QuestionTitle</key> 
     <string>What is 2 + 2?</string> 
     <key>A</key> 
     <string>4</string> 
     <key>B</key> 
     <string>3</string> 
     <key>C</key> 
     <string>7</string> 
     <key>D</key> 
     <string>2</string> 
     <key>QuestionAnswer</key> 
     <string>A</string> 
    </dict> 
    <dict> 
     <key>QuestionTitle</key> 
     <string>What is 5 + 2?</string> 
     <key>A</key> 
     <string>4</string> 
     <key>B</key> 
     <string>3</string> 
     <key>C</key> 
     <string>7</string> 
     <key>D</key> 
     <string>2</string> 
     <key>QuestionAnswer</key> 
     <string>C</string> 
    </dict> 
    <dict> 
     <key>QuestionTitle</key> 
     <string>What is 9 - 2?</string> 
     <key>A</key> 
     <string>4</string> 
     <key>B</key> 
     <string>3</string> 
     <key>C</key> 
     <string>7</string> 
     <key>D</key> 
     <string>2</string> 
     <key>QuestionAnswer</key> 
     <string>C</string> 
    </dict> 
    <dict> 
     <key>QuestionTitle</key> 
     <string>What is 10 - 6?</string> 
     <key>A</key> 
     <string>4</string> 
     <key>B</key> 
     <string>3</string> 
     <key>C</key> 
     <string>7</string> 
     <key>D</key> 
     <string>2</string> 
     <key>QuestionAnswer</key> 
     <string>A</string> 
    </dict> 
    <dict> 
     <key>QuestionTitle</key> 
     <string>What is 1 + 2?</string> 
     <key>A</key> 
     <string>4</string> 
     <key>B</key> 
     <string>3</string> 
     <key>C</key> 
     <string>7</string> 
     <key>D</key> 
     <string>2</string> 
     <key>QuestionAnswer</key> 
     <string>B</string> 
    </dict> 
</array> 

我也跟着来创建这个测验的教程有问题因为在那里我有为重点的主键,但我不能似乎能够改变根的名字我相信如果有人知道如何改变这种情况,可以解决我的问题?我编辑了代码以解决这个问题,这是我的viewDidLoadshowNextQuestion注意:当按下任何按钮A,B,C或D时,showNextQuestion被调用。

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
// Do any additional setup after loading the view. 

    NSString *path = [[NSBundle mainBundle] pathForResource:@"Questions1" ofType:@"plist"]; 
    NSDictionary *tempDict = [[NSDictionary alloc] initWithContentsOfFile:path]; 
    self.questions = [tempDict objectForKey:@"Questions"]; 

    currentQuestion = -1; 
    NSLog(@"%d",currentQuestion); 
    [self showNextQuestion]; 
} 

-(void)showNextQuestion 
{ 
    currentQuestion++; 
    NSLog(@"%d",currentQuestion); 
    NSLog(@"%d",[self.questions count]); 
    if(currentQuestion < [self.questions count]) 
    { 
     NSLog(@"Inside the loop"); 
     NSDictionary *nextQuestion = [self.questions objectAtIndex:currentQuestion]; 
     self.answer = [nextQuestion objectForKey:@"QuestionAnswer"]; 
     self.lblQuestion.text = [nextQuestion objectForKey:@"QuestionTitle"]; 
     self.lblQuestionA.text = [nextQuestion objectForKey:@"A"]; 
     self.lblQuestionB.text = [nextQuestion objectForKey:@"B"]; 

     if([nextQuestion objectForKey:@"C"]){ 
      self.lblQuestionC.hidden = NO; 
      self.btnC.hidden = NO; 

      self.lblQuestionC.text = [nextQuestion objectForKey:@"C"]; 
     } 
     else{ 
      self.lblQuestionC.hidden =YES; 
      self.btnC.hidden = YES; 
     } 

     if([nextQuestion objectForKey:@"D"]){ 
      self.lblQuestionD.hidden = NO; 
      self.btnD.hidden = NO; 

      self.lblQuestionD.text = [nextQuestion objectForKey:@"D"]; 
     } 
     else{ 
      self.lblQuestionD.hidden =YES; 
      self.btnD.hidden = YES; 
     } 

    } 
    else{ 
     //Game Over 
    } 
} 

任何帮助,将不胜感激谢谢你在前进

+0

是如何self.question财产或伊瓦定义?你需要确保它是一个强有力的参考(过去称为保留)。 – occulus 2013-02-24 18:53:29

+0

@property(弱,非原子)NSArray *问题; – 2013-02-25 13:03:51

+0

嗨对不起,我试图编辑我的评论早些时候,但无法确切是什么错了,它似乎这么简单,现在它滑倒我的心灵抱歉,非常感谢你的帮助 – 2013-02-25 17:50:51

回答

-1
self.lblQuestionTitle.text = [nextQuestion objectForKey:@"QuestionTitle"]; 
+0

也许你可以添加一个简短的注释到您的答案? – glh 2013-04-13 10:04:19