0

こんにちは私は作成しようとしているクイズゲームで問題を抱えていて、答えをどこでも検索しましたが、運がありませんでした。いくつかの質問を含むplistファイルを読み取り、回答を選択したときに次の質問が表示されないことを除いて、すべてが正常に機能するクイズを作成しています。NSLogsを使用すると、currentQuestion値の増分が機能していることがわかります。実際、ここでplistファイルを失っているように見えるself.questionは、まだ画像を投稿できないため、私の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
    }
}

これに関する助けをいただければ幸いです。よろしくお願いします。

4

1 に答える 1

-1
self.lblQuestionTitle.text = [nextQuestion objectForKey:@"QuestionTitle"];
于 2013-04-13T09:47:04.790 に答える