The Right Way / Best Handling Method "CoreData Cannot Run Error for Exception"

I have a problem with master data when some data is deleted one way or another and my iPhone app will always crash on startup. I need a way to completely delete this data when the exception "CoreData cannot execute error for" is detected.

Any advice or sample code on how to do this?

Is there any best practice or the right way to deal with this exception?

+3
source share
2 answers

These examples did not work.

-(void)removePreviousDestinationsFromMainDatabaseForCarrier:(NSString *)carrierName 
{
NSManagedObjectContext *moc = [self managedObjectContext];

NSError *error = nil;
NSFetchRequest *requestCarrier = [[NSFetchRequest alloc] init];
[requestCarrier setEntity:[NSEntityDescription entityForName:@"Carrier" inManagedObjectContext:moc]];
[requestCarrier setPredicate:[NSPredicate predicateWithFormat:@"(name == %@)", carrierName]];
//[requestCarrier setIncludesPropertyValues:NO];
[requestCarrier setResultType:NSManagedObjectIDResultType];
//[requestCarrier setReturnsObjectsAsFaults:NO];
NSArray *carriers = [moc executeFetchRequest:requestCarrier error:&error];
if (error) NSLog(@"Failed to executeFetchRequest to data store: %@", [error localizedDescription]); 

NSManagedObjectID *carrier = [carriers lastObject]; 
//NSManagedObject *carrier = [carriers lastObject]; 

[moc deleteObject:[moc objectWithID:carrier]];
//[managedObjectContext deleteObject:carrier];

[requestCarrier release], requestCarrier = nil;
return;
}

. , , " , "

            [carriersTableView0 setHidden:YES];
            [deleteProcess0 setHidden:NO];
            [self removePreviousDestinationsFromMainDatabaseForCarrier:carrierName];
            [moc save:&error];
            [deleteProcess0 setHidden:YES];
            [carriersTableView0 setHidden:NO];
0

( "CoreData " ) ( - , ).

, (float, int), Objective C NSNumber . !

, . , . .

, , RestKit ( Objective C ).

0

Source: https://habr.com/ru/post/1767823/


All Articles