2013-10-29 43 views
-1

我創建了一個名爲Questions的plist。當我創建plist時,它會自動創建一個名爲「Root」的鍵。我如何將它重命名爲'問題'?重命名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> 

+0

請出示的plist。 – trojanfoe

+0

你不需要重命名這個。你想用這個plist做什麼? –

回答

4

Root僅僅是一個標識符在Xcode中顯示,代表plist中的基本容器。密鑰Root實際上從未添加到plist本身(除非您添加另一個Root密鑰)。 Root通常是一個數組或字典,實際上並沒有自己的密鑰。


換言之,Questions也不會存在於你的plist中。 questions將是你的plist內容加載到該變量的名稱...

你應該只具有:

@property (strong, nonatomic) NSArray *questions; 

self.questions = [[NSArray alloc] initWithContentsOfFile:path]; 
+0

這個問題是多麼浪費時間和資源。 +1雖然,我猜:) – trojanfoe