Получить изображение из Интернета в UIImageView не работает - PullRequest
0 голосов
/ 22 марта 2012

У меня большая проблема с очень простым кодом.Мне нужно получить изображение из URL-адреса Facebook и поместить его в UIImageView.

Я не знаю, но не работает.Я также пробовал разные ссылки (никакие ссылки на Facebook тоже не работают).

-(IBAction)setUserPhoto:(id)sender{

    NSURL *url = [url initWithString:@"http://graph.facebook.com/100000769380612/picture?type=large"];
    NSData *imageData = [NSData dataWithContentsOfURL:url];
    UIImage *image = [UIImage imageWithData:imageData];

    if(image){

        NSLog(@"Image OK");

    } else if (!image) {

            NSLog(@"Error");

    }

    [userPhoto setImage:image];

}

Спасибо.

Ответы [ 4 ]

5 голосов
/ 22 марта 2012

В строке есть переменная подстановки, которая не была заменена:

http://graph.facebook.com/%@/picture?type=large

Вам не хватает псевдонима (вот ошибка, которую я получаю, если помещаю этот URL в сафари)

Использовать

NSString *urlString = [NSString stringWithFormat:@"http://graph.facebook.com/%@/picture?type=large", replacement]; //where replacement is the string that is supposed to go there
NSUrl *url = [NSUrl URLWithString:urlString];

Сначала попробуйте URL-адрес в веб-браузере, чтобы убедиться, что он существует.

2 голосов
/ 22 марта 2012

Вам не хватает чего-то в url .. оно содержит% @, замените его на правильную строку

например:

https://graph.facebook.com/DoloresPark/picture?type=large

Ваш URL должен быть похож на приведенный выше

-(IBAction)setUserPhoto:(id)sender{

      NSString *user = @"DoloresPark";

      NSString *urlString = [NSString 
                             stringWithFormat:
                             @"http://graph.facebook.com/%@/picture?type=large",user];

      NSURL *url = [NSURL URLWithString:urlString];

      NSData *imageData = [NSData dataWithContentsOfURL:url];

      UIImage *image = [UIImage imageWithData:imageData];

     if(image){

         NSLog(@"Image OK");

     } else if (!image) {

         NSLog(@"Error");

    }

    [userPhoto setImage:image];

}
0 голосов
/ 22 марта 2012

вы пробовали dataWithContentsOfURL:options:error: и читали & error для каких-либо указателей?

0 голосов
/ 22 марта 2012

Проблема в том, что вы не устанавливаете соединение с URL. Используйте следующее -

NSURLRequest *request = [[NSURLRequest alloc]initWithURL:[NSURL URLWithString:@"Your URL"]];    
NSURLConnection *connection = [[NSURLConnection alloc]initWithRequest:request delegate:self];

ваш класс должен реализовать NSURLConnectionDelegate -

Используйте следующие методы делегата для получения данных -

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data;
- (void)connectionDidFinishLoading:(NSURLConnection *)connection;

Надеюсь, это поможет!

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