我正在尝试从 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];
并将 filePath 放在范围内,而不是仅仅放入 @"0@2x.png"。