2016-04-29 4 views

ответ

0

Правильный способ использования основных данных - это либо контекст MainQueue, либо контекст PrivateQueue. Если вы используете базовые данные в NSOperation, вам нужно либо перейти в контекст MainQueue через performBlock:, либо performBlockAndWait:. Если вы собираетесь использовать контекст PrivateQueue, вам все равно необходимо получить к нему доступ через performBlock: или performBlockAndWait:, основное отличие между ними состоит в том, что любая работа, выполненная против контекста MainQueue, блокирует пользовательский интерфейс.

В идеале, если вы обрабатываете данные в NSOperation, тогда вы должны построить контекст PrivateQueue, являющийся дочерним элементом контекста MainQueue, получить к нему доступ через performBlock: или performBlockAndWait: и сохранить его, когда вы закончите обработку данных.

Я настоятельно рекомендую рассмотреть Core Data Programming Guide и раздел о параллелизме.