I have two threads in my iOS program. One is the main thread. The other the background thread is launched to get data from web services as i dont want to disturb the UI. I read that i have to create two separate managed object contexts. So i did it like this Code: @property (strong, nonatomic) NSManagedObjectContext *managedObjectContext; @property (strong, nonatomic) NSManagedObjectContext *secondmanagedObjectContext; In my background thread i used secondMOC. How do i merge them after my background thread is finished working? Can some one explain me. thanks.