2013-04-24 38 views
0

我的代碼設置它的實體,上下文等,然後保存一條記錄,一切正常。然後我想保存一條NEW記錄,但代碼會覆蓋原始記錄。核心數據,在同一實例中向實體添加多個項目

如何在同一實例中編寫多個項目?

AppDelegate *appdelagate = [[UIApplication sharedApplication]delegate]; 
context = [appdelagate managedObjectContext]; 
NSEntityDescription *entitydesc = [NSEntityDescription entityForName:@"UserData" inManagedObjectContext:context]; 
NSManagedObject *userData = [[NSManagedObject alloc]initWithEntity:entitydesc insertIntoManagedObjectContext:context]; 
      [userData setValue:@"Bob" forKey:@"userCD"]; 
      [userData setValue:@"Tall" forKey:@"dataCD"]; 
      // Store in the DB 
      [context save:&error]; 

一些如何移動到下一個記錄

[userData setValue:@"John" forKey:@"userCD"]; 
    [userData setValue:@"Short" forKey:@"dataCD"]; 
    // Store in the DB 
    [context save:&error]; 

我想我需要釋放用戶數據,並宣佈再次...我還想到我丟失了大量工作,應該停止思維SQL術語。

感謝

回答

2

那是因爲你改變了第一個userData對象的創建一個新的屬性,而不是 :

NSManagedObject *userData; 
// Create first object: 
userData = [[NSManagedObject alloc]initWithEntity:entitydesc insertIntoManagedObjectContext:context]; 
[userData setValue:@"Bob" forKey:@"userCD"]; 
[userData setValue:@"Tall" forKey:@"dataCD"]; 
[context save:&error]; 
// [userData release]; only if you don't compile with ARC 

// Create second object: 
userData = [[NSManagedObject alloc]initWithEntity:entitydesc insertIntoManagedObjectContext:context]; 
[userData setValue:@"John" forKey:@"userCD"]; 
[userData setValue:@"Short" forKey:@"dataCD"]; 
[context save:&error]; 
// [userData release];  only if you don't compile with ARC 
+0

完美的偉大工程,現在很明顯的 - 我只是無法看到它。 – 2013-04-24 14:15:40

+0

同樣的方式可以做,如果我有15個數據? – codercat 2016-03-18 11:35:05