2013-02-21 71 views
0

所以我的新節目,並已被困在這幾天... 添加數據我有一個數組,如下所示從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>question</key> 
    <string>2 + 2 = ?</string> 
    <key>A</key> 
    <string>2</string> 
    <key>B</key> 
    <string>7</string> 
    <key>C</key> 
    <string>3</string> 
</dict> 
<dict> 
    <key>question</key> 
    <string>2 + 3 = ?</string> 
    <key>A</key> 
    <string>5</string> 
    <key>B</key> 
    <string>2</string> 
    <key>C</key> 
    <string>6</string> 
</dict> 
</array> 
</plist> 

那麼我想這些存儲的數組每。然後,我在每個故事板上都有一個標籤,並且要將每個鍵分配給不同的標籤,但我似乎做錯了。這裏是我的代碼

- (void)showNextQuestion 
{ 
    NSArray *rootArray = [NSArray arrayWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"question" ofType:@"plist"]]; 
    int numItems = [rootArray count]; 
    currentQuestion = -1; 
    currentQuestion++; 

    NSMutableArray *question = [NSMutableArray arrayWithCapacity:numItems]; 
    NSMutableArray *A = [NSMutableArray arrayWithCapacity:numItems]; 
    NSMutableArray *B = [NSMutableArray arrayWithCapacity:numItems]; 
    NSMutableArray *C = [NSMutableArray arrayWithCapacity:numItems]; 

    for (NSDictionary *itemData in rootArray) { 
     [question addObject:[itemData objectForKey:@"question"]]; 
     [A addObject:[itemData objectForKey:@"A"]]; 
     [B addObject:[itemData objectForKey:@"B"]]; 
     [C addObject:[itemData objectForKey:@"C"]]; 

     self.questionasked.text =question; 
     self.answer1.text = A; 
     self.answer2.text = B; 
     self.answer3.text = C; 
    } 
} 

4個標籤questionsasked,ANSWER1,ANSWER2,ANSWER3 ......如何正確

+1

您似乎將一個NSMutableArray分配給標籤的文本字段。由於您有多個問題,因此您需要指定您想在「self.?????.text =?;'行 – 2013-02-21 21:22:00

+0

嘿david中顯示的問題的索引。感謝您的幫助,我想要做的是採取數組中的任何事情,說出問題並將其放在問號標籤中......這是否有道理? – Sfocker 2013-02-21 21:26:38

+0

可以理解,但是您只有一組標籤和多個問題,並且您正在分配for語句中的標籤,因此您也覆蓋了分配。你的意思是把問題放在表格視圖或其他什麼地方,然後在選擇問題的按鈕中顯示可能的答案?你想達到什麼目的? – 2013-02-21 21:29:36

回答

0

分配給它最起碼,你應該從刪除的賦值,循環和重寫如:

self.questionasked.text =question[currentQuestion]; 
    self.answer1.text = A[currentQuestion]; 
    self.answer2.text = B[currentQuestion]; 
    self.answer3.text = C[currentQuestion]; 

我也建議你只加載文件一次(而不是在每一個showNextQuestion調用)

而且,你的設置只會告訴你第一個問題,無論你多少次打電話。將此語句移到構造函數或某個只會執行一次的地方。

+0

什麼方法我應該把它放在大衛,對不起,因爲我說我是新的所有這一切......相當不確定 – Sfocker 2013-02-21 21:43:27

+0

要麼你的構造函數,或者你的viewDidLoad – 2013-02-21 21:49:05

+0

好吧大衛我已經這樣做了......我想通過獲取問題解決了,我可以向你發送我的一些修改後的代碼,因爲我限於這裏的空間 – Sfocker 2013-02-21 21:51:19