Загрузить NSImage из URL, но только некоторые работы URL - PullRequest
2 голосов
/ 18 апреля 2010

У меня есть код, который загружает файл изображения из Интернета и помещает его в представление изображения. Проблема в том, что он работает со всем, кроме Google Charts. Это расстраивает, потому что я полагался на это, чтобы графические данные для моего приложения. Вот URL, который мне нужно загрузить: Нажмите, чтобы посмотреть мой тестовый график . Я не уверен, почему NSImage отказывается загружать это, когда он работает со всем остальным. Если вы знаете почему или у вас есть обходной путь, любая помощь приветствуется.

Вот пример кода, который я нашел для загрузки изображений:

    NSURL *imageURL = [NSURL URLWithString:@"http://chart.apis.google.com/chart?cht=p3&chs=700x400&chd=t:20,20,20,20,20&chl=A|B|C|D|E&chco=66FF33,3333CC"];
NSLog(@"url");
NSData *imageData = [imageURL resourceDataUsingCache:NO];
    NSLog(@"data");
NSImage *imageFromBundle = [[NSImage alloc] initWithData:imageData];

(Примечание. Этот код загрузит любое изображение, кроме диаграммы)

Спасибо

Ответы [ 2 ]

4 голосов
/ 18 апреля 2010

Это сбой, потому что | недействительно для URL. Вы должны заменить | символов в URL-адресе с escape-кодом:% 7C. Будет работать следующий URL:

http://chart.apis.google.com/chart?cht=p3&chs=700x400&chd=t:20,20,20,20,20&chl=A%7CB%7CC%7CD%7CE&chco=66FF33,3333CC

1 голос
/ 06 февраля 2014

Или просто используйте

stringByAddingPercentEscapesUsingEncoding:

Тогда вам не нужно жестко кодировать все различные побеги. См. Описание

Питер заслуживает больших пальцев.

...