В зависимости от размера ваших изображений, вы можете позволить новому атрибуту coredata «использовать внешнее хранилище» сделать это для вас.Вот объяснение того, что он скопировал из другого моего ответа:
Поскольку мы сейчас находимся на IO5, вам больше не нужно записывать образы на диск по необходимости.Теперь вы можете установить «разрешить внешнее хранение» в двоичном атрибуте coredata.Согласно примечаниям к выпуску яблок, это означает следующее:
Небольшие значения данных, такие как миниатюры изображений, могут быть эффективно сохранены в базе данных, но большие фотографии или другие носители лучше всего обрабатываются непосредственно файловой системой.Теперь вы можете указать, что значение атрибута управляемого объекта может быть сохранено как внешняя запись - см. SetAllowsExternalBinaryDataStorage: если этот параметр включен, Core Data эвристически решает для каждого значения значение, следует ли сохранять данные непосредственно в базе данных или сохранять URI.в отдельный файл, которым он управляет для вас.Если вы используете эту опцию, вы не сможете выполнять запросы на основе содержимого свойства двоичных данных.
У этого подхода есть несколько преимуществ.Первое, что нужно сделать, - это сохранить файлы, по крайней мере, так быстро, как вы могли бы при записи в файловую систему.Но если есть небольшие изображения, которые соответствуют описанным выше условиям, это будет намного быстрее, потому что они будут сохранены непосредственно в файле sqlite coredata.
Кроме того, с iOS 5 очень легко работатьв отдельных управляемых контекстах и внесение изменений в дочерний контекст в фоновом режиме.В случае успешного завершения вы можете объединить этот дочерний контекст с основным контекстом управляемого объекта и выполнить необходимую обработку.
[child performBlock:^{
[childsave:&parentError]; //do this in background on child context
}];
Существует NSPrivateQueueConcurrentType для создания child-moc - см. [Документация apple] [1]
И, по крайней мере, вы можете работать с объектами coredata, что позволит вам кэшировать, ограничивать и оптимизировать дальнейшую обработку после завершения загрузки
[1]: https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/CoreData/Articles/cdConcurrency.html#//apple_ref/doc/uid/TP40003385 для получения дополнительной информации.