2011-07-19 5 views
0

Je vais essayer d'être rapide, je suis encore assez nouveau mais je peux habituellement comprendre des trucs, ce problème me rend fou. J'ai un XML sur un site Web, l'analyser dans une table, cliquez sur l'élément, chargez un lien dans un webView, et commence la question ...NSURL renvoie null, stringByAddingPercent ... renvoie un cauchemar

-(void)viewDidLoad { 
NSString *str = [NSString stringWithFormat:@"%@", [item objectForKey:@"link"]]; 
NSURL *url = [NSURL URLWithString = str]; 
NSURLRequest *request = [NSURLRequest requestWithURL:url]; 
[webView loadRequest = request]; 
} 

Si vous NSLog * str, il est bon. Si vous URL NSLog, c'est null. Le problème est évidemment l'utilisation d'un objectForKey, car sinon tout le reste fonctionne. Maintenant, si je

NSURL *url = [NSURL URLWithString = [str stringByAddingPercentEscapesUsingEncoding:... 

ajoutant soit NSUTF ou NSASCII, l'URL pour NSLog ajoute

%0A%20%20%20%20%20%20%20%20%0A%20%20%0A%20%20 

pour mettre fin à la fin de ma valeur. Donc, si la valeur était aq1sw2de3, la NSLog serait

aq1sw2de3%0A%20%20 etc. 

Je viens dactylographié cette place de Lookin l'écran mac, supposons que toutes les fautes d'orthographe n'existent pas dans le code. J'ai essayé tellement de façon différente de passer cette URL à la WebView, mais mes résultats sont NULL ou tout ce putain de charabia. Est-ce que je perds mon temps à faire quelque chose que je ne peux pas faire? Est-ce que je vais dans le mauvais sens? J'ai cherché pendant des heures, et tous les problèmes que je vois sont dus au format de la chaîne ou de l'URL qu'ils passent (espaces et | causant des erreurs) mais mes valeurs de lien sont juste de A à Z et de 0 à 9, c'est tout.

Répondre

1

"% 20" et "% 0A" sont les pourcentages de séquences d'échappement pour un espace et un caractère de tabulation, respectivement. Vérifiez si votre chaîne a des espaces supplémentaires à la fin.

+0

homme qui souffle mon esprit, je l'ai vérifié et revérifié pour vous assurer qu'il n'y a pas un espacement supplémentaire. Mais au moins j'ai quelque chose à partir de maintenant, merci beaucoup. Je vais vous laisser savoir ce qui se passe. – DanBroChill

+0

Cela semble être, merci une tonne Scott – DanBroChill

0

Scott a raison. Regardez le NSCharacterSet pour un ensemble constant de caractères d'espaces que vous pouvez utiliser pour couper votre chaîne avec. Vous pouvez utiliser l'appel NSString stringByTrimmingCharactersInSet avec l'ensemble d'espaces pour supprimer les caractères indésirables.

+0

Oui, je vais jeter un oeil à ce moment, merci patron :) – DanBroChill

1

D'une manière ou d'une autre, votre chaîne commence à recevoir des espaces supplémentaires. Si vous avez simplement besoin de couper, essayez:

NSURL *url = [NSURL URLWithString: 
      [[str stringByAddingPercentEscapesUsingEncoding: NSUTF8Encoding]   
      stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]]; 
+0

Je vais essayer, ou du moins le garder à l'esprit, mais le problème vient évidemment de le XML que j'ai fait, donc j'ai besoin de réparer ça. – DanBroChill