TempProducts と Products の 2 つのエンティティがあります。
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
}