puede ser muy fácil, pero no parece averiguar por qué está URLWithString:
devolviendo cero aquí.
//localisationName is a arbitrary string here
NSString* webName = [localisationName stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSString* stringURL = [NSString stringWithFormat:@"http://maps.google.com/maps/geo?q=%@,Montréal,Communauté-Urbaine-de-Montréal,Québec,Canadae&output=csv&oe=utf8&sensor=false&key=", webName];
NSURL* url = [NSURL URLWithString:stringURL];
webName
antes de su llamadastringWithFormat:
? Entonces, ¿cuál es el valor destringURL
antes de su llamada aURLWithString:
? ÚseloNSLog()
para imprimirlos paso a paso, o para establecer puntos de corte e inspeccionar los valores a medida que se establecen.Respuestas:
También debe escapar de los caracteres que no son ASCII en su URL codificada:
Probablemente pueda eliminar el escape de localisationName, ya que será manejado por el escape de toda la cadena.
fuente
stringByAddingPercentEscapesUsingEncoding
convierte # en% 2webStringURL = [stringURL stringByAddingPercentEncodingWithAllowedCharacters:NSCharacterSet.URLQueryAllowedCharacterSet];
Utilice esta función si trabaja con archivos guardados en el administrador de archivos.
fuente
Supongo que necesitas usar
-[NSString stringByAddingPercentEscapesUsingEncoding:]
. Consulte el documento de Apple .Otro comentario es que, como un veterano, me resulta un poco incómodo poner caracteres que no sean ASCII en un archivo fuente. Dicho esto, este documento de Apple dice que, a partir de 10.4, las cadenas UTF-16 están bien por dentro
@"..."
. De alguna manera, GCC parece convertir correctamente el archivo fuente en Latin-1 en UTF-16 en el binario, pero creo que es más seguro usar caracteres ASCII de 7 bits solo dentro del código fuente y usarNSLocalizedString
.fuente
Creo que tus personajes acentuados están deshaciendo las cosas; no serán manejados por -stringByAddingPercentEscapesUsingEncoding :.
fuente
NSURL URLWithString: @ "" devolverá nil si la URL no se ajusta a RFC 2396 y se deben escapar
Si lee rfc2396 en el enlace, obtendrá detalles
Un gran sitio que encontré para verificar dónde está el personaje ofensivo, elija la opción de ruta para la URL
http://www.websitedev.de/temp/rfc2396-check.html.gz
fuente
La llamada URLWithString: devolverá un nulo si la cadena que se le pasa está mal formada. Dado que NSURL devuelve nil para URL con formato incorrecto, NSLog su cadena y establezca puntos de interrupción para ver exactamente qué se está pasando a su método de creación NSURL. Si su URLWithString funciona con un valor codificado de forma rígida, eso es una prueba más de que lo que está pasando está mal formado. ver
fuente
Puede usar NSURL directamente sin NSString.
//.h archivo
//.m archivo
Y paso la URL de otra vista (usando la variable NewsUrl) a esta vista.
Intentalo.
fuente