Mon application télécharge des paquets d'images à partir d'un serveur. Il s'agit d'un ensemble de liens directs (20-50 fichiers) à partir de XML.
-
Comment puis-je m'assurer que l'ensemble des images est entièrement téléchargé ?
-
Comment ajouter une condition pour annuler tout le téléchargement (et supprimer tous les fichiers déjà téléchargés) si l'application a été fermée avec le bouton iPhone ? (ces méthodes sont dans AppDelegate alors que tout mon code de téléchargement est dans downloadviewcontroller.m).
-
Y a-t-il autre chose dont je dois me préoccuper lors du téléchargement de plusieurs fichiers (5-10 MB au total) ?
Le code que j'utilise actuellement n'est pas très sûr en cas d'interruption du téléchargement ou de fermeture de l'application. Dans le fil de fond, j'appelle cette méthode pour chaque fichier :
(BOOL) loadImageFromURL:(NSString *)url withName:(NSString *)filename toFolder:(NSString *)folder {
NSURL *link = [NSURL URLWithString:url];
NSFileManager *manager = [NSFileManager defaultManager];
NSString *filepath = [folder stringByAppendingPathComponent:filename];
if ([manager fileExistsAtPath:filepath]) {
return YES;
}
else
{
UIImage *image = [[UIImage imageWithData:[NSData dataWithContentsOfURL:link]] retain];
NSData *data = [NSData dataWithData:UIImageJPEGRepresentation(image, 1.0f)];
if ([data length] <= 0)
[image release];
return NO; // no data
else
{
[data writeToFile:filepath atomically:YES];
[image release];
return YES;
}
}
}