2012-10-12 47 views
0

我有測驗應用程序的iPhone,我可以從plist文件加載任意問題,我想問問大約20個問題;在我的plist文件中,我還有20個,但是我不想在一次測驗中重複一個問題。 這是我的plist文件`xcode測驗應用程序:如何不重複一個任務。從plist文件

<key>Domanda1</key> 

    <dict> 

    <key>immagine</key> 

    <string>hpv</string> 

    <key>Titolo</key> 

    <string>Domanda numero 1</string> 

    <key>Risposta1</key> 

    <string>Risposta primaD1</string> 

    <key>Risposta2</key> 

    <string>Risposta seconda</string> 

    <key>Risposta3</key> 

    <string>Risposta terza</string> 

    <key>Risposta4</key> 

    <string>Risposta quarta</string> 

    <key>Soluzione</key> 

    <integer>1</integer> 

</dict> 

<key>Domanda2</key> 

....... ` 我看來Controller.m或者

-(void)creaDomanda { 

//scelta casuale tra le varie disponibili 

int randomValue = (arc4random() % 20) + 1; 

NSString *stringa = [NSString stringWithFormat:@"Domanda%i", randomValue]; 

// Apre il dictionary 

dictionary = [plistData objectForKey:stringa]; 

// e stampa a schermo la domanda 

label1.text = [dictionary valueForKey:@"Titolo"]; 

label1.textColor = [UIColor redColor]; 

.........

任何想法? 提前致謝

回答

0

創建一個可變數組並按照數字順序複製您的問題。使用隨機值從數組中選擇問題。當您提出問題時,請將其從陣列中移除。要生成一個新的隨機值,請使用數組中的項目數量而不是「20」。

+0

感謝您的解決方案,今晚我會嘗試...因爲現在我努力工作。 – Davide

0

試試這個,但是我做了20個隨機數。

NSMutableArray *array = [[NSMutableArray alloc] init]; 
BOOL isflag = NO; 
int numberofquestions = 20; 

for(int m =0; m<numberofquestions; m++) 
{ 

    int question_number = (arc4random()%numberofquestions)+1; 
    isflag = YES; 

    for(int n = 0;n < (int)[array count];n++) 
    { 
     if([[array objectAtIndex:n] intValue] == question_number) 
     { 
      isflag = NO; 
      m--; 
      break; 
     } 
    } 

    if(isflag == YES) 
    { 
     [array addObject:[NSString stringWithFormat:@"%d", question_number]]; 
    } 
} 

這個數組會給你20張隨機數不repeation。

+0

非常感謝,我會盡快嘗試,然後我會發送我的反饋..... – Davide

相關問題