Я пытаюсь сделать пакетную загрузку фотографий в моем приложении для iPhone. У меня есть один скрипт, который просматривает фотографии пользователя, а затем для каждой фотографии вызывает другой скрипт для загрузки.
Сценарий, который выполняет загрузку, должен вызвать обратный вызов сценария, который запускает каждую из фотографий пользователя, чтобы сигнализировать об успехе или неудаче. Это немного странно, но мне нужно получить возможность блокировать синхронный вызов внутри цикла, но в то же время сценарий загрузки является асинхронным.
Код очень сложный, поэтому я попытаюсь использовать псевдокод:
Первый сценарий:
foreach (photoNeedsUpload in users photos)
upload the photo via Upload Script
callback hook: successOrFailureUploading (called back by the Upload Script)
Скрипт загрузки:
1. Do the upload and then wait for NSURLRequest callbacks:
connectionDidFinishLoading, didFailWithError, etc., etc.
2. Upon getting called back, in turn:
call back Script One appropriately with success/failure signal
Моя проблема в том, что я хотел бы иметь асинхронные обратные вызовы, чтобы я мог проверить состояние загрузки, но мне действительно нужно заблокировать каждую фотографию и ждать, пока она будет загружена.
Есть ли простой способ сделать что-то подобное? Должен ли я перевести поток в спящий режим или просто сделать синхронный вызов http? Если так, как проверить на успех?
Я признаю, что я не делал домашнее задание по дизайну, и мне начинает казаться, что я создал круговую проблему для себя!