2010-12-05 16 views
0

Je fais des tests dans Core Data et ai un tableau avec env. 230 enregistrements que j'essaie de stocker dans ma base de données. Malheureusement, seul le dernier enregistrement semble être stocké dans la base de données. Je ne peux juste pas comprendre pourquoi comme je peux voir que la boucle while est en boucle correctement?Pourquoi seul le dernier enregistrement est-il stocké dans la base de données?

De même, si un champ (nrField) est indexé, dois-je ajouter des nombres ou cela se fera-t-il automatiquement lorsque j'ajouterai des enregistrements à la base de données? nrFields est le compteur unique stocké dans chaque enregistrement.

//=========LOOP ARRAY AND INSERT RECORDS INTO DB==============// 
while (eOF != 99999) { 

    qNr = [myArray objectAtIndex:xx]; 
    eOF = [qNr intValue]; 
    xx = xx++; 

    if (eOF != 99999) { 

     qDifficulties = [myArray objectAtIndex:xx]; 
     int iDiff = [qDifficulties intValue]; 
     [famQuizInfo setValue:[NSNumber numberWithInt:iDiff] forKey:@"qDiff"]; 
     xx = xx++; 

     // No action for Category as it is not included in the database any longer 
     xx = xx++; // Calculate +1 to compensate for non existing Category 

     [famQuizInfo setValue:[myArray objectAtIndex:xx] forKey:@"question"]; 
     xx = xx++; 

     [famQuizInfo setValue:[myArray objectAtIndex:xx] forKey:@"qRightAnswer"]; 
     xx = xx++; 

     [famQuizInfo setValue:[myArray objectAtIndex:xx] forKey:@"qWrongAnswer1"]; 
     xx = xx++; 

     [famQuizInfo setValue:[myArray objectAtIndex:xx] forKey:@"qWrongAnswer2"]; 
     [famQuizInfo setValue:[NSNumber numberWithInt:0] forKey:@"qNrAccess"]; 
     [famQuizInfo setValue:[NSDate date] forKey:@"qRegDate"]; 


     //NSError *error; 
     if (![qContext save:&error]) { 
      NSLog(@"Whoops, couldn't save: %@", [error localizedDescription]); 
     } 

     xx = xx++; 
     NSLog(@"xx: %i", xx); 

    } 
} 

Répondre

2

Le problème est que vous mettez à jour un enregistrement et l'écrasez dans la boucle. Vous devez créer une nouvelle instance de famQuizInfo chaque fois autour de la boucle.