There are two types of managed object contexts: main queue and private queue. The type of context is defined as part of its initialization.
A main queue context (as defined by a
NSMainQueueConcurrencyType) is specifically for use with your application interface and can only be used on the main queue of your app.
A private queue context (as defined by a
NSPrivateQueueConcurrencyType) creates its own queue upon initialization and can be used only on that queue. Because the queue is private and internal to the NSManagedObjectContext instance, it can only be accessed through the
performBlock: and the
My question is :
Can we use a fetch results controller with private context as a collection view data source ?
It enables us to unblock UI when we are trying to write big amounts of data into my core data data base. The sentence above, as far as i understand, does not contradict the above question.
Does someone see any issue doing so (use a fetch results controller with private context as a collection view data source) ?
If the issue is that the UI is blocked during transactions, why not just perform the writes onto a child private queue context as you've mentioned - then merge it against the main context. The fetch results controller should against the source of truth which is the main context.