0
두 개의 엔터티가 있습니다. TempProducts 및 Products핵심 데이터 - 엔터티에서 레코드를 가져 와서 다른 엔터티에 추가하는 방법
TempProducts가 TableView에 채워집니다. 사용자는 테이블 뷰에 데이터를 입력해야합니다. 버튼을 클릭하면 TempProducts의 모든 레코드를 가져와 Products에 추가해야합니다. 그러면 모든 TempProducts가 삭제되어 다음에 테이블이 비어있게됩니다.
- (IBAction)saveData:(id)sender
{
//FETCH ALL RECORDS OF TEMPPRODUCTS
NSFetchRequest * allTempProducts = [[NSFetchRequest alloc] init];
[allTempProducts setEntity:[NSEntityDescription entityForName:@"TempProducts" inManagedObjectContext:self.managedObjectContext]];
[allTempProducts setIncludesPropertyValues:NO]; //only fetch the managedObjectID
//FETCH ALL RECORDS OF TEMPPRODUCTS
NSFetchRequest * allProducts = [[NSFetchRequest alloc] init];
[allProducts setEntity:[NSEntityDescription entityForName:@"Products" inManagedObjectContext:self.managedObjectContext]];
[allProducts setIncludesPropertyValues:NO]; //only fetch the managedObjectID
NSError * error = nil;
NSArray * tProducts = [self.managedObjectContext executeFetchRequest:allTempProducts error:&error];
NSArray * products = [self.managedObjectContext executeFetchRequest:allProducts error:&error];
NSLog(@"The array TempProducts has %li records", [tProducts count]);
NSLog(@"The array Products has %li records", [products count]);
//-------------------------------------------------------------------------
//ADD OBJECT TO PRODUCTS
NSManagedObjectContext *con = [self managedObjectContext];
NSManagedObject *countryObject=[NSEntityDescription
insertNewObjectForEntityForName:@"Products"
inManagedObjectContext:con];
//--------------------------------------------------------------------------
//error handling goes here
for (NSManagedObject * tProduct in tProducts) {
[self.managedObjectContext deleteObject:tProduct];
}
NSError *saveError = nil;
[self.managedObjectContext save:&saveError];
//more error handling here
}
고맙습니다. 시도해 보겠습니다. – user2414590
나는 그 컨트롤러에 관련된 + 버튼을 만드는 방법을 알지 못한다. – user2414590