-1

Questions という plist を作成しました。plist を作成すると、「Root」というキーが自動的に作成されました。名前を「質問」に変更するにはどうすればよいですか?

これが.mファイルに書いたものです

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

    NSString *path = [[NSBundle mainBundle] pathForResource:@"Questions" ofType:@"plist"];
    NSDictionary *tempDict = [[NSDictionary alloc] initWithContentsOfFile:path];
    self.questions = [tempDict objectForKey:@"Questions"]; //mine is called root not    questions?

    NSDictionary *firstQuestion = [self.questions objectAtIndex:0];
    self.lblQuestionTitle.text = [firstQuestion objectForKey:@"QuestionTitle"];
    self.lblAnswerA.text = [firstQuestion objectForKey:@"A"];
    self.lblAnswerB.text = [firstQuestion objectForKey:@"B"];

   if([firstQuestion objectForKey:@"C"]){

      self.lblAnswerC.hidden = NO;
      self.btnC.hidden = NO;
      self.lblAnswerC.text =[firstQuestion objectForKey:@"C"];

    }

     else{
      self.lblAnswerC.hidden = YES;
       self.btnC.hidden = YES;

        }

     if([firstQuestion objectForKey:@"D"]){

      self.lblAnswerD.hidden = NO;
      self.btnD.hidden = NO;
      self.lblAnswerD.text =[firstQuestion objectForKey:@"D"];

     }

      else{
      self.lblAnswerD.hidden = YES;
      self.btnD.hidden = YES;

     }


}

これが私の plist です - 私は 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">
<array>
    <dict>
        <key>QuestionTitle</key>
    <string>What is sum of 1 + 1?</string>
    <key>A</key>
    <string>1</string>
    <key>B</key>
    <string>2</string>
    <key>C</key>
    <string>3</string>
    <key>D</key>
    <string>4</string>
    <key>QuestionAnswer</key>
    <string>B</string>
</dict>
<dict>
    <key>QuestionTitle</key>
    <string>When to wear ear defenders?</string>
    <key>A</key>
    <string>85db</string>
    <key>B</key>
    <string>88db</string>
    <key>C</key>
    <string>100db</string>
    <key>D</key>
    <string>70bd</string>
    <key>QuestionAnswer</key>
    <string>A</string>
</dict>
<dict>
    <key>QuestionTitle</key>
    <string>When a child cries in loud noise you should?</string>
    <key>A</key>
    <string>Ignore</string>
    <key>B</key>
    <string>Smile</string>
    <key>C</key>
    <string>Move Away from sound</string>
    <key>D</key>
    <string>Get annoyed</string>
    <key>QuestionAnswer</key>
    <string>C</string>
</dict>
<dict>
    <key>QuestionTitle</key>
    <string>1+3 =?</string>
    <key>A</key>
    <string>7</string>
    <key>B</key>
    <string>6</string>
    <key>C</key>
    <string>5</string>
    <key>D</key>
    <string>4</string>
    <key>QuestionAnswer</key>
    <string>D</string>
</dict>
<dict>
    <key>QuestionTitle</key>
    <string>5 + 5 =?</string>
    <key>A</key>
    <string>2</string>
    <key>B</key>
    <string>7</string>
    <key>C</key>
    <string>10</string>
    <key>D</key>
    <string>15</string>
    <key>QuestionAnswer</key>
    <string>C</string>
</dict>

4

1 に答える 1

4

Rootplistのベースコンテナを表すXcodeに表示される単なる識別子です。キーRootが実際に plist 自体に追加されることはありません (別のRootキーを追加しない限り)。はRoot通常、配列または辞書であり、実際には独自のキーを持っていません。


別の言い方をQuestionsすれば、あなたの plist にも存在しません。questionsplistの内容をロードする変数の名前になります...

あなたはただ持っているべきです:

@property (strong, nonatomic) NSArray *questions;

self.questions = [[NSArray alloc] initWithContentsOfFile:path];
于 2013-10-29T10:33:28.033 に答える