NSURL и NSURLConnection не работают с Google Chart API - PullRequest
1 голос
/ 20 апреля 2011

Я пытался отобразить изображение, возвращенное API Google Chart, но приведенные ниже коды не работают:

NSData *imageData = [NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://chart.apis.google.com/chart?cht=p3&chd=t:60,40&chs=250x100&chl=Hello|World"]];
UIImage *downloadedImage = [UIImage imageWithData:imageData];
imgView.image = downloadedImage;

или

NSData *imageData=[NSURLConnection sendSynchronousRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://chart.apis.google.com/chart?cht=p3&chd=t:60,40&chs=250x100&chl=Hello|World"]] returningResponse:nil error:nil];
UIImage *downloadedImage = [UIImage imageWithData:imageData];
imgView.image = downloadedImage;

Целевое изображение не было показано, как ожидалось. Ты хоть представляешь, где проблема?

1 Ответ

0 голосов
/ 27 июня 2011

Обе части кода работают, за исключением того, что объект NSURL равен nil. NSURL не поддерживает символы канала (|), поэтому вам нужно экранировать с помощью %7c Вы можете использовать [NSString stringByAddingPercentEscapesUsingEncoding:], чтобы позаботиться о любых других персонажах. Вот новая версия:

NSString *url = [@"http://chart.apis.google.com/chart?cht=p3&chd=t:60,40&chs=250x100&chl=Hello|World" stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSData *imageData = [NSData dataWithContentsOfURL:[NSURL URLWithString:url]];
UIImage *downloadedImage = [UIImage imageWithData:imageData];
imgView.image = downloadedImage;
...