Да, я рекомендую ознакомиться с Документами Apple по многопоточным базовым данным и моей статьей о MDN (Mac Developer Network) http://www.mac -developer-network.com / columns / coredata / may2009 / которые обсуждают то, что вам нужно избегать и как все настроить.
Кстати, сохранение большого количества двоичных данных в объекте Core Data, как правило, плохая идея. Правило гласит:
- <100KB сохранить в объекте </li>
- <1 МБ, сохраните в отдельном объекте, висящем в взаимосвязи </li>
1MB сохранить на диск и сохранить его путь в управляемом объекте
Таким образом, вы можете ускорить загрузку двоичных данных в отдельные потоки, сохранить их на диск, а затем сообщить основному потоку NSManagedObjectID
ссылающегося объекта и пути и позволить основному потоку сделать это очень быстро и легко. сшивание. Это позволило бы вашей реализации Core Data оставаться однопоточным и выполнять только загрузку данных.