c'est peut-être très facile, mais je ne semble pas savoir pourquoi le URLWithString:
retour est nul ici.
//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
avant votre appelstringWithFormat:
? Alors, quelle est la valeurstringURL
avant votre appelURLWithString:
? UtilisezNSLog()
pour les imprimer étape par étape, ou définissez des points d'arrêt et inspectez les valeurs au fur et à mesure qu'elles sont définies.Réponses:
Vous devez également échapper les caractères non ASCII dans votre URL codée en dur:
Vous pouvez probablement supprimer l'échappement de la localisationName car il sera géré par l'échappement de la chaîne entière.
la source
stringByAddingPercentEscapesUsingEncoding
convertit # en% 2webStringURL = [stringURL stringByAddingPercentEncodingWithAllowedCharacters:NSCharacterSet.URLQueryAllowedCharacterSet];
Utilisez cette fonction si vous traitez un fichier enregistré sur le gestionnaire de fichiers.
la source
Je suppose que vous devez utiliser
-[NSString stringByAddingPercentEscapesUsingEncoding:]
. Voir le doc d'Apple .Un autre commentaire est que, en tant que vieille minuterie, je trouve un peu difficile de mettre des caractères non ASCII dans un fichier source. Cela dit, ce document Apple dit, à partir de 10.4, les chaînes UTF-16 sont OK à l'intérieur
@"..."
. D'une manière ou d'une autre, GCC semble convertir correctement le fichier source en Latin-1 en UTF-16 dans le binaire, mais je pense qu'il est plus sûr d'utiliser des caractères ASCII 7 bits uniquement à l'intérieur du code source et de l'utiliserNSLocalizedString
.la source
Je pense que vos personnages accentués gâchent les choses; ils ne seront pas gérés par -stringByAddingPercentEscapesUsingEncoding :.
la source
NSURL URLWithString: @ "" renverra nil si l'URL n'est pas conforme à RFC 2396 et doit être échappée
Si vous lisez rfc2396 dans le lien, vous obtiendrez beaucoup de détails
Un excellent site que j'ai trouvé pour vérifier où se trouve le caractère incriminé, choisissez l'option de chemin pour l'URL
http://www.websitedev.de/temp/rfc2396-check.html.gz
la source
L'appel URLWithString: retournera un nul si la chaîne qui lui est passée est mal formée. Puisque NSURL renvoie nil pour les URL mal formées, NSLog votre chaîne et définissez des points d'arrêt pour voir exactement ce qui est passé à votre méthode de création NSURL. Si votre URLWithString fonctionne avec une valeur codée en dur, c'est une preuve supplémentaire que tout ce que vous transmettez est mal formé. voir
la source
Vous pouvez utiliser NSURL directement sans NSString.
//.h fichier
//.m fichier
Et je passe l'URL d'une autre vue (en utilisant la variable NewsUrl) à cette vue.
Essayez-le.
la source