2011-02-05 2 views
9

NSURLnull. В чем причина?Создано NSURL is 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]; 
+2

Пожалуйста, отформатируйте код в своем вопросе, нажав кнопку {}. http://meta.stackexchange.com/questions/22186/how-do-i-format-my-code-blocks –

ответ

27

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

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 слишком или любой другой кодировки.

+0

Я теперь только я пришел чтобы знать, что значение содержит пространство, которое находится в массиве. Большое спасибо. – Jeeva

+0

Да, пространство - это первое, что не подходит в URL-адресе. :) Пожалуйста. –

+0

Спасибо, это помогает. – Unheilig

2

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

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

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

который поднимает вопрос: что вы вводите?

+0

Во-вторых, что. Приведенный код Nishanth.jeeva не содержит явных ошибок и должен работать должным образом. –

+0

[webArray objectAtIndex: 1] содержит «http://www.chennaispider.com/resources/2838-Details-Chennai-City-Fire-Stations.aspx"..Но все еще URL-адрес печати. – Jeeva

+0

Ваш URL должен соответствовать требованиям, указанным в RFC 1738: http://www.ietf.org/rfc/rfc1738.txt - например. 'http: // : /? ' –

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

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