我正在尝试从NSUrl imageURL下载图像,并通过添加@2x在UIImageView中显示它,以实现视网膜像素密度; 这将在iPhone 4或更高版本上显示。 我使用了这里的一些代码: 如何使用objective C在iOS上下载和保存文件?
当我启动它时,它在imageView上什么也不显示,并且最后一个NSLog行打印出一些非常小的图像尺寸,表明它没有真正下载。 除了具有非常糟糕的错误检查之外,我的代码有什么问题?
- (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(@"Error when loading 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];
}
编辑:好的,我已经修复了。感觉自己很蠢。我本应该放入
。imageData = [NSData dataWithContentsOfFile:@filePath];
将文件路径放入作用域中,而不仅仅是放在@"0@2x.png"中。