Je suis en train d'essayer de télécharger une image à partir de l'URL de l'image NSUrl et de l'afficher dans un UIImageView avec une densité de pixels Retina en ajoutant @2x; cela doit être affiché sur un iPhone 4 ou ultérieur. J'ai utilisé une partie du code d'ici: Comment télécharger et enregistrer un fichier localement sur iOS en utilisant Objective C?
Il ne montre rien sur l'imageView quand je le démarre, et la dernière ligne NSLog imprime des dimensions vraiment petites pour l'image, suggérant qu'il n'en a pas vraiment téléchargé une. Qu'est-ce qui ne va pas avec mon code en plus du fait qu'il a une très mauvaise vérification d'erreur?
- (void) presentImage: (NSURL*) imageURL{
NSData * imageData = [NSData dataWithContentsOfURL:imageURL];
NSLog([imageURL description]);
if ( imageData )
{
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *filePath = [NSString stringWithFormat:@"%@/%@", documentsDirectory,@"0@2x.png"];
[imageData writeToFile:filePath atomically:YES];
}
else NSLog(@"Erreur lors du chargement de l'image!!!");
imageData = [NSData dataWithContentsOfFile:@"0@2x.png"];
UIImage *image = [[UIImage alloc] initWithData: imageData];
NSLog(@"%f1 x %f2", image.size.width, image.size.height);
[self.imageView setImage: image];
}
ÉDITER: OK, j'ai corrigé cela. Je me sens stupide. Je devais mettre
imageData = [NSData dataWithContentsOfFile:@filePath];
et mettre filePath dans la portée au lieu de simplement mettre @"0@2x.png".