2016-11-16 3 views
0

Вечер, я пытаюсь установить ImageView.image (IBOutlet в этом случае) с изображением, загруженным из Интернета.iOS Objective-c: как установить и ImageView с URL-адресом

Я уже рассмотрел много вопросов об этом в переполнении стека.

И я нашел этот общий ответ:

NSURL *url = [NSURL URLWithString:@"http://www.fnordware.com/superpng/pnggrad16rgb.png"]; 

NSData *data = [NSData dataWithContentsOfURL:url]; 

NSLog(@"imageData: %@", data); 

UIImage *image = [UIImage imageWithData:data]; 

NSLog(@"image: %@", image); 

self.imageView.image = image; 

Но, конечно, в моем случае не работает. Мои журналы всегда равны нулю.

Не могли бы вы рассказать мне, в чем проблема?

+0

какой результат вы получите здесь 'url' –

+0

" http://www.fnordware.com/superpng/pnggrad16rgb.png ". Правый. –

+1

Был ли у вас какой-либо журнал относительно исключения безопасности для транспорта – Vinodh

ответ

2

Я считаю, что вы пытаетесь запустить его на прошивке 8 +

Пожалуйста, добавьте в ваш info.plist

<key>NSAppTransportSecurity</key> 
    <dict> 
     <key>NSAllowsArbitraryLoads</key> 
     <true/> 
    </dict> 

И все должно быть хорошо :)

ПОЧЕМУ ??

IOS 8 год HTTP не допускается, вы должны использовать либо протокол HTTPS или добавить исключение в свой info.plist :)

+0

В этом была проблема! :) –

+0

@ the-miotz: Я рад, что у меня это получилось :) –

+0

@ the-miotz: Спасибо, приятель :) –

1

вы должны использовать SDWebImage библиотеки. Он также может кэшировать изображение из URL-адреса. и использование очень просто

[yourImageView sd_setImageWithURL:[NSURL URLWithString:@"image-url"] placeholderImage:[UIImage imageNamed:@"photo.jpg"]] 

место владельца изображение показано на случай, если изображение еще не загружено.

3

Этот URL-адрес является HTTP-типом, поэтому вам необходимо установить NSAppTransportSecurity в вашем файле plist.

Для этого процесса

<key>NSAppTransportSecurity</key> 
<dict> 
     <key>NSAllowsArbitraryLoads</key> 
    <true/> 
</dict> 

enter image description here

Это может помочь вам. Пожалуйста, дайте мне знать, если у вас возникли проблемы с этим.

+3

почему вы снова отправили тот же ответ –

Смежные вопросы