2011-02-05 15 views
9

NSURL drukowanie null. Jaki jest powód?Utworzono NSURL ma wartość 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

Proszę sformatować kod w pytaniu, klikając przycisk {}. http://meta.stackexchange.com/questions/22186/how-do-i-format-my-code-blocks –

Odpowiedz

27

Powinieneś wykonać następujące czynności.

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]; 

Użyłem NSASCIIStringEncoding ale możesz użyć UTF8 zbyt lub jakiegokolwiek innego kodowania.

+0

Ya teraz tylko ja przyjechałem wiedzieć, że wartość zawiera przestrzeń, która jest w szyku .. dziękuję bardzo. – Jeeva

+0

Tak, spacja jest pierwszą rzeczą, która nie jest w porządku w adresie URL. :) Nie ma za co. –

+0

Dzięki, pomaga. – Unheilig

2

od docs dla -[NSURL initWithString:]:

Jeśli ciąg był źle sformułowany, zwraca nil.

Ta metoda oczekuje, że URLString będzie zawierał wszelkie niezbędne kody procentowe, które są ":", "/", "%", "#", ";" i "@". Zwróć uwagę, że znaki "%" są tłumaczone przez UTF-8.

co podnosi: jaki jest twój wkład?

+0

Po drugie. Opublikowany kod Nishanth.jeeva nie zawiera oczywistych błędów i powinien działać zgodnie z oczekiwaniami. –

+0

[webArray objectAtIndex: 1] zawiera "http://www.chennaispider.com/resources/2838-Details-Chennai-City-Fire-Stations.aspx"... Ale nadal nie drukuje adresu URL. – Jeeva

+0

Twój adres URL musi spełniać wymagania określone w dokumencie RFC 1738: http://www.ietf.org/rfc/rfc1738.txt - np. 'http: // : /? ' –

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

To nie jest drukowanie prawidłowego ciągu URL. To tylko drukowanie łańcucha. Więc jeśli NSURL * webURL = [[przydzielenie NSURL] initWithString: webStr] zwróci zero, oznacza to, że twój ciąg nie jest prawidłowym adresem URL.

Powiązane problemy