Я пытаюсь загрузить изображение из NSUrl imageURL и отобразить его в UIImageView с плотностью пикселей сетчатки, добавив @ 2x; это должно отображаться на iPhone 4 или новее. Я использовал некоторый код отсюда: How do I download and save a file locally on iOS using objective C?iPhone: Загрузка изображения затем отображается в UIImageView с расширением @ 2x
Он ничего не показывает на изображенииПросмотрите, когда я его запустил, а последняя строка 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,@"[email protected]"];
[imageData writeToFile:filePath atomically:YES];
}
else NSLog(@"Error when loading image!!!");
imageData = [NSData dataWithContentsOfFile:@"[email protected]"];
UIImage *image = [[UIImage alloc] initWithData: imageData];
NSLog(@"%f1 x %f2", image.size.width, image.size.height);
[self.imageView setImage: image];
}
EDIT: Хорошо, я установил, что. Я чувствую себя глупо. Я должен был поставить в
imageData = [NSData dataWithContentsOfFile:@filePath];
и поставить Filepath в области видимости nstead просто положить в @ «[email protected]».
Я бы предложил использовать AFNetworking. Кроме того, dataWithContentsOfURL - это синхронный вызов, поэтому его следует использовать только в коде, запущенном в фоновом потоке. –