If we use CoreData in a multithreaded applications, we must take count of the following. A NSManagedObject created in one thread, can’t be used in another thread. Also a NSManagedObjectContext can’t be used inter threads.
Two practices are recommended when programming with threads and CoreData:
As apple say:
PS: Remember that when using asynchronous request -either using blocks or delegates-, always is used a different thread for the response treatment.