2010-04-21 20 views
6

otro problema donde parece haber encontrado una solución para ObjC pero no MonoTouch.Cadena URL válida como NSUrl se vuelve nula

Quiero un NSUrl de una URL (como cadena).

La cadena puede contener espacios en blanco y barras diagonales inversas.

¿Por qué NSUrl devuelve nulo para dicha cadena, a pesar de que estas son URL válidas en un navegador? Por ejemplo, NSUrl foo = NSUrl.FromString (@ "http://google.com/search? \ Query");

foo == null

¿Alguna sugerencia?

+0

Podría publicar más código? Lo que tienes arriba se ve absolutamente bien. – SomaMan

+0

@Mike: si obtuvo mi respuesta correcta, acéptela. –

Respuesta

1

es probable que necesite para procesar la cadena primero con

stringByAddingPercentEscapesUsingEncoding: 

... para que pueda ser procesada una URL válida.

13

[NSURL URLWithString: [googlSearchString stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding]];

referenciado por
Stack Overflow....

0

URLWithString: crea y devuelve un objeto NSURL inicializado con una cadena proporcionada.

  • (id) URLWithString: (NSString *) urlString Parámetros urlString la cuerda con la que se puede inicializar el objeto NSURL. Debe ser una URL que se ajuste a RFC 2396. Este método analiza URLString según RFCs 1738 y 1808. (Para crear objetos NSURL para rutas de sistema de archivos, use fileURLWithPath: isDirectory: en su lugar.) Valor de retorno Un objeto NSURL inicializado con URLString. Si la cadena estaba mal formada, devuelve nil.
0

NSString * urlString = @"http://example/newcase/path/fileNames"; urlString = [urlString stringByAddingPercentEscapesUsingEncoding:NSISOLatin1StringEncoding]; NSURL * url = [NSURL URLWithString:urlString]; NSLog(@"URL: %@", url);