2013-07-26 28 views
5

Hala Çekirdek Veri'de yeniyim.Çekirdek Verileri sadece son öğeyi kaydediyor

Bir dizide üç kez döngü oluşturmaya çalışıyorum ve her döngüde, dizin numarasını kaydediyorum.

Ancak sonuçları aldığında yalnızca son dizin numarasını gösterir. Daha önce eklenen herşeyi geçersiz kılıyor.

Kodum AppDelegate'de yazılmıştır.

NSManagedObjectContext *context = [self managedObjectContext]; 
NSManagedObject *tagsDB = [NSEntityDescription insertNewObjectForEntityForName:@"Tags" inManagedObjectContext:context]; 

for (int i = 0 ; i < 3 ; i++) 
{ 
    [tagsDB setValue:i forKey:@"ID"]; 

} 

[self saveContext]; 

...

- (void)saveContext 
{ 
    NSError *error = nil; 
    NSManagedObjectContext *managedObjectContext = self.managedObjectContext; 
    if (managedObjectContext != nil) { 
     if ([managedObjectContext hasChanges] && ![managedObjectContext save:&error]) { 
      // Replace this implementation with code to handle the error appropriately. 
      // abort() causes the application to generate a crash log and terminate. You should not use this function in a shipping application, although it may be useful during development. 
      NSLog(@"Unresolved error %@, %@", error, [error userInfo]); 
      abort(); 
     } 
    } 
} 
+0

Ne zaman tüm veriler kaydedilir, her tekrarda NSManagedObject yeniden beyan ama her zaman null fazladan bir satır olsun ben ne zaman tüm veriler kaydedilir, her tekrarda NSManagedObject yeniden ilan – firewall

cevap

7

Her değer için varlığınızı oluşturmanız gerekir.

NSManagedObjectContext *context = [self managedObjectContext]; 

for (int i = 0 ; i < 3 ; i++) 
{ 
    NSManagedObject *tagsDB = [NSEntityDescription insertNewObjectForEntityForName:@"Tags" inManagedObjectContext:context]; 
    [tagsDB setValue:i forKey:@"ID"]; 

} 

[self saveContext]; 
+0

değerleri ancak Her zaman fazladan bir boş değer satırı alıyorum – firewall

+0

DB'nizde bir sorgu çalıştırdığınızda ekstra satır görünüyor? –

+0

bu ekstra sıranın olması normal mi? Bundan kurtulabilir miyim? – firewall

1

yılında for döngüsü - basitçe yineledi yeni Takılı öğenin değerini değiştirir alır kodu:

İşte benim kod. For döngüsünde yapman gerekenler, her yineleme için yeni ve ayrı bir öğe ekleyen insertNewObjectForEntityForName'dur.

İlgili konular