Создано NSURL является нулевым - PullRequest
9 голосов
/ 05 февраля 2011

NSURL печать null. В чем причина?

NSString *webStr = [[NSString alloc] initWithFormat:@"%@",[webArray objectAtIndex:1]];

NSLog(@"urlString = %@",webStr); // its printing correct url string

NSURL *webURL = [[NSURL alloc] initWithString:webStr];

NSLog(@"url = %@",webURL); // its printing null

[webURL release];

[webStr release];

Ответы [ 3 ]

27 голосов
/ 05 февраля 2011

Вы должны сделать следующее.

NSString *webStr = [[NSString alloc] initWithFormat:@"%@",[webArray objectAtIndex:1]];

NSLog(@"urlString = %@",webStr); // its printing correct url string

NSURL *webURL = [[NSURL alloc] initWithString:[webStr stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding]];

NSLog(@"url = %@",webURL); // it should print it

[webURL release];

[webStr release];

Я использовал NSASCIIStringEncoding, но вы также можете использовать UTF8 или любую другую кодировку.

2 голосов
/ 05 февраля 2011

из документов на -[NSURL initWithString:]:

Если строка была искажена, возвращает ноль.

Этот метод предполагает, что URLString будет содержать любые необходимые процентные коды перехода, которые являются ‘:’, ‘/’, ‘%’, ‘#’, ‘;’ и ‘@’. Обратите внимание, что экранирование в «%» транслируется через UTF-8.

, что поднимает: каков ваш вклад?

0 голосов
/ 05 февраля 2011
NSLog(@"urlString = %@",webStr); // its printing correct url string 

Не печатается правильная строка URL.Это просто печать строки.Поэтому, если NSURL * webURL = [[NSURL alloc] initWithString: webStr] возвращает nil, это означает, что ваша строка не является допустимым URL.

...