CoreData child contexts, NSFetchedResultsController and main thread CoreData child contexts, NSFetchedResultsController and main thread multithreading multithreading

CoreData child contexts, NSFetchedResultsController and main thread


Yes, it is expected, because Main MOC is involved in the saves of its children. It is convenient and kind of okay when children of the UI context don’t do big saves, but often becomes a performance problem if those saves are bigger. You can’t be sure that the UI thread does only minimum job when using this pattern.

For the big saves I would recommend creating a context that is configured directly with the persistent store coordinator. After big save happens, you just refetch and optionally refresh data in the UI context. For more details see my answer here.