3 votes

Téléchargement multiple de fichiers sans verrouillage de l'interface utilisateur dans ios

J'ai un tableau qui contient différentes urls, et un ensemble de boutons, chaque lien est assigné à chaque bouton. Lorsque l'on clique sur un bouton, le contenu de l'url qui est attribué à ce bouton particulier sera téléchargé. L'utilisateur peut cliquer sur plusieurs boutons en même temps afin de pouvoir effectuer plusieurs téléchargements en même temps. En même temps, l'utilisateur doit avoir la possibilité de naviguer dans d'autres vues, afin que le processus de téléchargement ne bloque pas l'interface utilisateur. Quelle serait la meilleure et la plus simple façon d'implémenter ceci ? Veuillez partager vos idées. Merci

5voto

yuji Points 11531

Il suffit de récupérer les données de manière asynchrone :

NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:urlString]];
[NSURLConnection sendAsynchronousRequest:request 
                                   queue:[NSOperationQueue mainQueue] 
                       completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) {
                           // The code here is executed when the response from the request comes back.
                           // The variable "data" will contain the response from the data.
                           // So you can do something like:
                           UIImage *anImage = [[UIImage alloc] initWithData:data]];
                       }];

2voto

cnaize Points 2891

Luke, utilise AFNetworking o ASIHTTPRequest lib avec des demandes asynchrones.

1voto

Damo Points 5382

Vous pourriez facilement mettre en place un Asynchrone Connexion NSURLConnection

c'est-à-dire qu'à chaque fois que l'utilisateur appuie sur ce bouton, vous déclenchez une connexion asynchrone pour faire le sale boulot.

Les exemples ne manquent pas - L'un des exemples de style de blog les plus faciles à comprendre est celui de Matt Gallagher, Cocoa With Love. Ici est un lien.

L'essentiel de la technique est que les méthodes de délégation sont faciles à utiliser et que vous pouvez y capturer chaque fichier que vous téléchargez.

Ne vous laissez pas tenter par la connexion de type synchrone, car elle n'est pas aussi souple et vous aurez du mal à trouver une solution simple pour télécharger plusieurs fichiers à l'aide de cette technique.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X