2011-09-22 9 views
0

다음 코드를 사용하여 여러 행을 내 coredata 데이터베이스에 저장하려고합니다. 마지막 행만 저장합니다. 왜 그 일을하는거야?왜 내 데이터가 핵심 데이터에 저장되지 않습니까?

nsManagedObject1.column1 = @"First row"; 
nsManagedObject1.column2 = @"Test 2"; 

//insert first row 
if (![context save:&error]) { 
    NSLog(@"Could not save the data: %@",[error localizedDescription]); 
} 

//insert second row 
nsManagedObject1.column1 = @"Second row"; 
nsManagedObject1.column2 = @"Test 2"; 

if (![context save:&error]) { 
    NSLog(@"Could not save the data: %@",[error localizedDescription]); 
} 

//see how many rows exist in the database 
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init]; 
NSEntityDescription *entity = [NSEntityDescription entityForName:@"TestDB" inManagedObjectContext:context]; 
[fetchRequest setEntity:entity]; 

NSArray *fetchedObjects = [context executeFetchRequest:fetchRequest error:&error]; 
NSLog(@"Number of rows: %d",[fetchedObjects count]); 

숫자가 하나뿐입니다. 행의 데이터를 인쇄 할 때 데이터베이스에 입력 한 마지막 행만 찾습니다. 왜 그 일을하는거야? 컨텍스트에서 저장 했으므로 두 행이 데이터베이스에서 사용 가능할 것으로 예상했습니다. 도와주세요! 나는 또한 오류가 발생하지 않습니다.

추신 : 나는이 일을해서는 안되지만 모든 행이 왜 저장되지 않는지 이해해야한다고 생각합니다.

+0

Xcode는 IDE입니다. 그것은 아무것도 저장하지 않고 실행합니다. – vikingosegundo

답변

2

2 개에는 두 개의 관리 대상 개체가 필요합니다. 모든 당신은 여기서 뭐하는 :

//insert second row 
nsManagedObject1.column1 = @"Second row"; 
nsManagedObject1.column2 = @"Test 2"; 

가 새로운 값을 가지고 nsManagedObject1의 1 열 및 2 열을 업데이트하고 있습니다.

nsManagedObject2를 만들어야 데이터베이스의 두 행을 사용할 수 있습니다.

+0

굉장! 고맙습니다. 내가 뭔가 잘못하고 있다고 느꼈다. – Gangadhar

+0

probs 없음! 다행 이네 :-) –

관련 문제