2011-02-05 14 views
9

NSURL impresión null. ¿Cual es la razón?Creado NSURL es nulo

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

Formatee el código en su pregunta haciendo clic en el botón {}. http://meta.stackexchange.com/questions/22186/how-do-i-format-my-code-blocks –

Respuesta

27

Debe hacer lo siguiente.

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

he utilizado NSASCIIStringEncoding pero se puede usar también UTF8 o cualquier otra codificación.

+0

Ya solo vine saber que el valor contiene espacio que está en la matriz ... muchas gracias. – Jeeva

+0

Sí, el espacio es lo primero que no está bien en la url. :) De nada. –

+0

Gracias, ayuda. – Unheilig

2

a partir de los documentos de -[NSURL initWithString:]:

Si la cadena estaba mal formado, devuelve nil.

Este método espera que URLString contenga los códigos de escape porcentuales necesarios, que son ':', '/', '%', '#', ';' y '@'. Tenga en cuenta que los '%' escapes se traducen a través de UTF-8.

que plantea: ¿cuál es su opinión?

+0

Segundo eso. El código publicado por Nishanth.jeeva no contiene errores obvios y debería funcionar como se esperaba. –

+0

[webArray objectAtIndex: 1] contiene "http://www.chennaispider.com/resources/2838-Details-Chennai-City-Fire-Stations.aspx"..Pero aún url printing null. – Jeeva

+0

Su URL debe cumplir los requisitos especificados en RFC 1738: http://www.ietf.org/rfc/rfc1738.txt - p. 'http: // : /? ' –

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

No está imprimiendo la cadena URL correcta. Solo está imprimiendo la cadena. Así que si NSURL * webURL = [[NSURL alloc] initWithString: webStr] devuelve nil significa que su cadena no es una URL válida.