ali, je fait juste un test pour pouvoir adapter ce bout de code pour la suite de mon appli, car les valeurs des différentes variables seront dynamique et dépendrons du choix que fera l'utilisateur.
Après avoir fait afficher l'url dans l'invit de commande je retrouve ceci:
Pourquoi tu remplaces les "&", "=" et "?" ? Ils peuvent bien être contenu dans une URL, en particulier si l'URL en question contient des arguments à passer en GET ?
désolé j'avais pas réussi à m'en servir correctement mais maintenan c'est bon ^^
Ce n'est toujours pas la bonne solution...
Déjà un nom de ville peut contenir bien plus que des espaces comme caractères spéciaux. En particulier des accents et autres. Donc ta solution ne couvre pas tous les cas, loin de là .
Mais surtout pourquoi diable ne pas vouloir utiliser stringByAddingPercentEscapesUsingEncoding ?? Qui fait tout le boulot à ta place, et résoudrait ton problème directement... Je ne comprend pas ta réticence et ton refus de suivre la solution qu'on te donne depuis le début ! (ça donne pas trop envie de continuer à te donner des conseils si tu t'obstines à ne pas les suivre)
Cans ce cas plutôt utiliser CFURLCreateStringByAddingPercentEscapes de CoreFoundation (grace au toll-free-bridging c'est facile à appliquer sur une NSString).
Et puis sinon y'a l'autre solution d'utiliser NSURLComponents pour composer son URL morceau par morceau, et l'assembler à la toute fin. C'est vachement + simple (mais c'est iOS7 minimum)
Cans ce cas plutôt utiliser CFURLCreateStringByAddingPercentEscapes de CoreFoundation (grace au toll-free-bridging c'est facile à appliquer sur une NSString).Et puis sinon y'a l'autre solution d'utiliser NSURLComponents pour composer son URL morceau par morceau, et l'assembler à la toute fin. C'est vachement + simple (mais c'est iOS7 minimum)
Et puis sinon y'a l'autre solution d'utiliser NSURLComponents pour composer son URL morceau par morceau, et l'assembler à la toute fin. C'est vachement + simple (mais c'est iOS7 minimum)
T'as pas remarqué que son prof veux que ça tourne sous iOS 2.5 ?
T'as pas remarqué que son prof veux que ça tourne sous iOS 2.5 ?
C'est pour ça que j'ai précisé "mais c'est iOS7 minimum" (sous-entendu "donc ça collera pas") et que j'ai pas proposé cette solution avant, je n'en parle ici qu'en réponse à Joanna.
Les villes qui sont prises en paramètres sont toutes en majuscule sans accents et en faisant le test sa fonctionne sans soucis, après je ne sais pas comment utilisé stringByAddingPercentEscapesUsingEncoding pour l'instant vu que j'ai réglé mon soucis je vais laisser tel quel.
Je modifierais mon programme en conséquence lorsque j'aurai atteint tout les objectifs fixé dans le cahier des charges.
En regardant la doc (et y'a pas mal de discussions également dessus sur le web), tu peux trouver un exemple d'utilisation dans le sample code GeocoderDemo, fichier PlacemarkViewController.m.
après je ne sais pas comment utilisé stringByAddingPercentEscapesUsingEncoding
??? Heu pourtant je vois pas comment on peut faire plus simple... y'a pas de truc compliqué ou de piège ou quoi, t'appelles juste la fonction et point barre... si ça c'est compliqué je vois pas ce que tu trouves simple et j'ose même pas imaginer les difficultés que tu vas avoir pour la suite...
+100 avec Elton. Ce n'est pas une bonne façon d'aborder les choses.
Mieux vaut faire que certaines tâches mais bien les faire que de tout faire à moitié. Sinon c'est la meilleure manière d'avoir un code pourri et bancal, qui ne marchera pas à la fin, et pour lequel plein de cas auxquels tu n'as pas pensé car tu as voulu aller trop vite vont tout casser.
Si tu comptes construire une cabane, tu n'essaies pas de poser toutes les planches de manière "à peu près" à ce que ça tienne "pour le moment", pour ensuite seulement rajouter les clous à la toute fin (et risquer de tout se prendre sur la tronche). Non, tu construis les fondations d'abord et seulement quand elles sont sécurisées tu avances et construit le reste.
En dev c'est pareil. En plus, si tu ne reviens sur ton code bancal que à la fin du projet (et je suis d'accord avec Elton, en pratique je te paries que tu vas pas le faire, mais admettons), tu vas peut-être te rendre compte que pour régler le problème que tu avais laissé en plan, bah en fait il faut aborder tout un pan de ton code différemment... et du coup faudra refaire toute une partie et casser des choses qui auront déjà été assemblées avec le reste.
(Après, si tu préfères coder comme un porc et à la va vite, c'est ton choix, dans ce cas laisse moi noter ton nom pour me souvenir de ne jamais t'embaucher dans ma boite)
Si le temps le permet (projet perso, etc.), je ne suis pas contre un proof test à part et qui sera entièrement réécrit dans tous les cas, car le proof test permet parfois certaines facilités comme des cas non-traités, et rien de mieux que de tout réécrire proprement dans ce cas-là pour être sûr de ne pas les oublier (enfin de moins en oublier).
Mais en général, non, je déconseille, car on a la flemme de revenir dessus proprement souvent.
Réponses
ah ah !
Chopper une NSString monstrueuse et la scanner est plus compliqué je pense que parser du JSON qui est à peu près simple comme bonjour...
Je pense que le *url refuse de prendre le "monUrl" car il y a une modification du string, vu que cela fonctionne si je met :
Je pencherai plus sur un problème avec les espaces...
Effectivement j'ai tester zone par zone et il s'avère que les espaces posait problème donc maintenant cela fonctionne voici le code que j'ai tapé:
merci pour l'aide, je vais pouvoir l'intégré à mon appli en faisant quelques modifications .
On essaye de te mettre sur cette piste depuis quelques posts déjà :
stringByAddingPercentEscapesUsingEncoding:
Un p'tit coup de stringByAddingPercentEscapesUsingEncoding: ne peut pas faire de mal pour être sûr d'avoir un URL bien formé.
(grillé)
Ca fait 3 fois que je te donne la solution... je comprend pas pourquoi tu refuses de l'appliquer...
tada:
désolé j'avais pas réussi à m'en servir correctement mais maintenan c'est bon ^^
Je viens de me souvenir, stringByAddingPercentEscapes n'attrape tous les cas. J'ai dû créer une catégorie sur NSString pour l'achever :
Pourquoi tu remplaces les "&", "=" et "?" ? Ils peuvent bien être contenu dans une URL, en particulier si l'URL en question contient des arguments à passer en GET ?
Déjà un nom de ville peut contenir bien plus que des espaces comme caractères spéciaux. En particulier des accents et autres. Donc ta solution ne couvre pas tous les cas, loin de là .
Mais surtout pourquoi diable ne pas vouloir utiliser stringByAddingPercentEscapesUsingEncoding ?? Qui fait tout le boulot à ta place, et résoudrait ton problème directement... Je ne comprend pas ta réticence et ton refus de suivre la solution qu'on te donne depuis le début ! (ça donne pas trop envie de continuer à te donner des conseils si tu t'obstines à ne pas les suivre)
Et puis sinon y'a l'autre solution d'utiliser NSURLComponents pour composer son URL morceau par morceau, et l'assembler à la toute fin. C'est vachement + simple (mais c'est iOS7 minimum)
Voilà ! Tu as raison.
T'as pas remarqué que son prof veux que ça tourne sous iOS 2.5 ?
Les villes qui sont prises en paramètres sont toutes en majuscule sans accents et en faisant le test sa fonctionne sans soucis, après je ne sais pas comment utilisé stringByAddingPercentEscapesUsingEncoding pour l'instant vu que j'ai réglé mon soucis je vais laisser tel quel.
Je modifierais mon programme en conséquence lorsque j'aurai atteint tout les objectifs fixé dans le cahier des charges.
En regardant la doc (et y'a pas mal de discussions également dessus sur le web), tu peux trouver un exemple d'utilisation dans le sample code GeocoderDemo, fichier PlacemarkViewController.m.
ça c'est une très mauvaise idée, typiquement le genre de truc qu'on fait jamais
Mieux vaut faire que certaines tâches mais bien les faire que de tout faire à moitié. Sinon c'est la meilleure manière d'avoir un code pourri et bancal, qui ne marchera pas à la fin, et pour lequel plein de cas auxquels tu n'as pas pensé car tu as voulu aller trop vite vont tout casser.
Si tu comptes construire une cabane, tu n'essaies pas de poser toutes les planches de manière "à peu près" à ce que ça tienne "pour le moment", pour ensuite seulement rajouter les clous à la toute fin (et risquer de tout se prendre sur la tronche). Non, tu construis les fondations d'abord et seulement quand elles sont sécurisées tu avances et construit le reste.
En dev c'est pareil. En plus, si tu ne reviens sur ton code bancal que à la fin du projet (et je suis d'accord avec Elton, en pratique je te paries que tu vas pas le faire, mais admettons), tu vas peut-être te rendre compte que pour régler le problème que tu avais laissé en plan, bah en fait il faut aborder tout un pan de ton code différemment... et du coup faudra refaire toute une partie et casser des choses qui auront déjà été assemblées avec le reste.
(Après, si tu préfères coder comme un porc et à la va vite, c'est ton choix, dans ce cas laisse moi noter ton nom pour me souvenir de ne jamais t'embaucher dans ma boite)
Je rejoins mes deux compères avec une nuance.
Si le temps le permet (projet perso, etc.), je ne suis pas contre un proof test à part et qui sera entièrement réécrit dans tous les cas, car le proof test permet parfois certaines facilités comme des cas non-traités, et rien de mieux que de tout réécrire proprement dans ce cas-là pour être sûr de ne pas les oublier (enfin de moins en oublier).
Mais en général, non, je déconseille, car on a la flemme de revenir dessus proprement souvent.
On parie qu'il y a zéro commentaire dans le code, pour gratiner les choses ? ^_^