NSURL URLWithString: myString возвращает ноль? - PullRequest
9 голосов
/ 30 апреля 2011

У меня есть строка моего URL-адреса .. Я хочу получить данные из этого URL-адреса. Для этого мне нужно создать объект NSURL. Проблема в том, что когда я пытаюсь URLWithString метод класса NSURL, он возвращает ноль. Но когда я открываю эту ссылку в Safari на моем Mac, она отображает мне изображение.

Я использую ..

NSString *str = @"http://chart.apis.google.com/chart?chs=150x150&cht=qr&chld=L|0&chl=http://MyServer.com/shareMyCard.php?value=1304057103";
NSURL *url = [NSURL URLWithString:str];
NSData *data = [NSData dataWithContentsOfURL:url];
UIImage *img = [UIImage imageWithData:data];

Я не знаю, почему URL ноль. Я думаю из-за строки запроса в моей строке.

Любая идея, как получить данные из этой строки URL.

Спасибо

1 Ответ

32 голосов
/ 30 апреля 2011

Ваш URL-адрес равен нулю, поскольку он содержит специальные символы, используйте следующую функцию для кодирования параметров URL-адресов перед их использованием в URL-адресе -

-(NSString *) URLEncodeString:(NSString *) str
{

    NSMutableString *tempStr = [NSMutableString stringWithString:str];
    [tempStr replaceOccurrencesOfString:@" " withString:@"+" options:NSCaseInsensitiveSearch range:NSMakeRange(0, [tempStr length])];


    return [[NSString stringWithFormat:@"%@",tempStr] stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
}
...