2010-09-10 2 views
0

Как я могу подождать окончания передачи ftp на моем iPhone-приложении, если мне нужно выполнить много FTP-передач в последовательности?Ftp множественная передача файлов

Я вызываю тот же метод для переноса, изменяя имя файла.

[Ftp receiveFtp:file1]; [Ftp receiveFtp:file2]; [Ftp receiveFtp:file3];

Вот, например, я должен ждать окончания первого метода перед вызовом второй. Любые идеи?

Спасибо, Андреа

ответ

1

Я думаю Ftp делает свою работу в другом потоке, иначе вы бы не спросить, как ждать способ прекратить выполнять его последователем?

Если это предположение верно, то я предлагаю вам создать метод протокола, который передаст вашему делегату (вашему родительскому классу), что передача ftp завершена, и начнется следующий файл.

+0

«или вы не спросите, как подождать, когда метод завершится, чтобы выполнить его последователя», как вы это понимаете? –

+0

Andrea Mattiuz: сообщение обычно не является асинхронным; независимо от того, что у вас есть после того, как сообщение будет выполнено только после того, как сообщение вернется. Если 'receiveFtp:' работает синхронно (т. Е. Получает весь файл перед возвратом), тогда нет необходимости делать что-либо особенное, чтобы ждать одного файла, прежде чем пытаться получить следующее. Ваш вопрос подразумевает, что 'receiveFtp:' работает ** a ** синхронно, то есть начинает получать файл в фоновом режиме, а затем возвращается, не дожидаясь завершения. Следовательно, решение: Get 'Ftp', чтобы рассказать вам, когда он заканчивается. –

+0

Peter Hosey: вы даете мне правильный путь для решения проблемы. Спасибо –

0

Поместите все ваши имена в коллекцию (то есть NSMutableArray), а в обработчике для завершения загрузки вытащите следующий из массива и начните следующую загрузку до тех пор, пока список не будет пустым.

+0

Как узнать, когда загрузка закончена? –

+0

Возможно, потому что вызывается какой-то метод делегата. – Eiko

Смежные вопросы