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
Réponses
Trop de publicités?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]];
}];
Luke, utilise AFNetworking o ASIHTTPRequest lib avec des demandes asynchrones.
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.