2014-05-01 42 views
0

我正在研究批量處理和上載圖像到服務器的功能。一般結構是:iOS連續的FIFO上傳架構

  • 我有需要上載
  • 在服務器上創建的圖像的圖像的表(檢索一個圖像標識等,從服務器)
  • 充分和縮略圖,然後從應用

我使用NSOperationsCreatePhotoOperationUploadPhotoOperation)要做到這一點上傳到S3。 CreatePhotoOperation創建3個孩子UploadPhotoOperations(用於上傳3個不同尺寸的圖像)並將其添加到本地NSOperationQueue。但是,問題是,由於依賴於NSOperation,如果本地隊列的-waitUntilAllOperationsAreFinished爲YES,則有時操作將停止。如果它不是,那麼它不會停頓,但是會將越來越多的CreatePhotoOperations轉儲到隊列中,因此會消耗更多的RAM/CPU。

CreatePhotoOperation完成時,它只是查找表中的下一張照片並將其添加到單例隊列中。

什麼是更好的方法來解決處理/上傳許多照片,一次一個,異步?謝謝!

注意:如果能澄清過程,我可以提供代碼。

+0

對不起,我不明白究竟是哪個問題。 –

+0

你爲什麼要一次一個地做任何事情? – nhgrif

回答

0

如果您擔心應用程序正在執行所有操作時的內存/ CPU使用情況,您可以將NSOperationQueue上的MaxConcurrentOperationCount設置爲較低的值。默認情況下,它設置爲NSOperationQueueDefaultMaxConcurrentOperationCount

NSOperationQueueDefaultMaxConcurrentOperationCount將基於可用處理器的數量和其他相關因素來選擇適當的值。