根據你的圖像有多大,你可以讓新的coredata「使用外部存儲」屬性爲你做這個。 下面是它從我的另一個答案複製的解釋:
因爲我們現在在IO5上,所以不再需要將圖像寫入磁盤。 您現在可以在coredata二進制屬性上設置「允許外部存儲」。根據蘋果發佈說明它意味着:
像圖像縮略圖小的數據值可以有效地存儲在數據庫 ,但大的照片或其他媒體最好由 文件系統直接處理。您現在可以指定管理對象屬性的值可以作爲外部記錄存儲 - 請參閱 setAllowsExternalBinaryDataStorage:啓用時,核心數據 試探性地確定每個值是否應將數據直接保存在數據庫中 或者將URI存儲到一個單獨的文件中,然後管理它。如果使用此選項,則無法基於二進制 數據屬性的內容進行查詢。
使用這種方法有幾個優點。 首先,Coredate至少可以在寫入文件系統時儘可能快地保存文件。但是,如果有適用於上述條件的小圖像,它會更快,因爲它們將直接保存在coredata sqlite文件中。
進一步在iOS 5中,可以很容易地處理單獨的託管上下文,並在後臺對子上下文執行更改。如果成功完成,您可以將此子上下文合併到主要的託管對象上下文中,並執行所需的處理。
[child performBlock:^{
[childsave:&parentError]; //do this in background on child context
}];
有一個NSPrivateQueueConcurrentType創建「兒童MOC」 - 見[蘋果文檔] [1]
而且至少可以與coredata對象的工作,使您能夠緩存,限制和進一步優化您的下載完成後處理
[1]:https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/CoreData/Articles/cdConcurrency.html#//apple_ref/doc/uid/TP40003385瞭解更多信息