Hang on NSManagedObjectContext's save:

2020-07-06 08:30发布

问题:

For some reason sometimes my app will just hang with the following code:

NSError *error;
if (![self.managedObjectContext save:&error]) {
     NSLog(@"Couldn't save: %@", [error localizedDescription]);
}

It doesn't always hang, just sometimes. If I break on all exceptions then Xcode will break on the save call, but if I turn off breakpoints it will just hang forever, no crashes or anything.

Any ideas?

回答1:

Hanging on anything that uses ManagedObjectContext is a sign of a deadlock. Either use NSLocking protocol or create a new MOC for each thread and synchronize them.

Another useful doc from Apple -> Concurrency with Core Data



回答2:

Have you tried setting NSError *error to nil?