2010-09-10 7 views
0

Comment puis-je attendre la fin d'un transfert ftp sur mon application iPhone, si je dois effectuer de nombreux transferts ftp en séquence?Ftp transfert de fichiers multiples

J'appelle la même méthode pour effectuer les transferts, en changeant le nom du fichier.

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

Ici, par exemple, je devrais attendre la fin de la première méthode avant d'appeler la seconde. Des idées?

Merci, Andrea

Répondre

1

Je suppose que Ftp fait son travail sur un autre fil, ou vous ne demander comment attendre une méthode pour mettre fin à l'exécuter est un suiveur? Si cette supposition est vraie, alors je vous suggère de créer une méthode de protocole qui dira à votre délégué (votre classe parente) que le transfert ftp est terminé, ce qui lancera le fichier suivant.

+0

"ou vous ne demanderiez pas comment attendre qu'une méthode se termine pour exécuter son suiveur" comment voulez-vous dire? –

+0

Andrea Mattiuz: Un message n'est normalement pas asynchrone; tout ce que vous avez après le message ne s'exécutera qu'après le retour du message. Si 'receiveFtp:' fonctionne de manière synchrone (c'est-à-dire qu'il reçoit le fichier entier avant de retourner), alors il ne sera pas nécessaire de faire quelque chose de spécial pour attendre un fichier avant d'essayer de recevoir le suivant. Votre question implique que 'receiveFtp:' fonctionne ** a ** de façon synchrone, c'est-à-dire commence à recevoir le fichier en arrière-plan, puis revient sans attendre que cela se termine. D'où la solution: Obtenez 'Ftp' pour vous dire quand il se termine. –

+0

Peter Hosey: vous me donnez la bonne façon de résoudre le problème. Merci –

0

Placez tous vos noms de fichiers dans une collection (NSMutableArray) et dans votre gestionnaire pour un téléchargement terminé, saisissez le suivant dans le tableau et lancez le téléchargement suivant tant que la liste n'est pas vide.

+0

Comment puis-je savoir quand le téléchargement est terminé? –

+0

Probablement parce qu'une méthode déléguée est appelée. – Eiko