-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

Root只是 Xcode 中显示的标识符,它代表 plist 中的基本容器。密钥Root实际上从未添加到 plist 本身(除非您添加另一个Root密钥)。通常Root是一个数组或字典,实际上并没有自己的键。


换句话说Questions,您的 plist 中也不存在。questions将是您将 plist 内容加载到的变量的名称...

你应该有:

@property (strong, nonatomic) NSArray *questions;

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