2011-02-05 3 views
9

NSURL impression null. Quelle est la raison?Créé NSURL est nul

NSString *webStr = [[NSString alloc] initWithFormat:@"%@",[webArray objectAtIndex:1]]; 

NSLog(@"urlString = %@",webStr); // its printing correct url string 

NSURL *webURL = [[NSURL alloc] initWithString:webStr]; 

NSLog(@"url = %@",webURL); // its printing null 

[webURL release]; 

[webStr release]; 
+2

Veuillez mettre en forme le code dans votre question en cliquant sur le bouton {}. http://meta.stackexchange.com/questions/22186/how-do-i-format-my-code-blocks –

Répondre

27

Vous devez procéder comme suit.

NSString *webStr = [[NSString alloc] initWithFormat:@"%@",[webArray objectAtIndex:1]]; 

NSLog(@"urlString = %@",webStr); // its printing correct url string 

NSURL *webURL = [[NSURL alloc] initWithString:[webStr stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding]]; 

NSLog(@"url = %@",webURL); // it should print it 

[webURL release]; 

[webStr release]; 

Je l'ai utilisé NSASCIIStringEncoding mais vous pouvez utiliser UTF8 trop ou tout autre encodage.

+0

Ya maintenant seulement je suis venu de savoir que la valeur contient de l'espace qui est en tableau .. merci beaucoup. – Jeeva

+0

Oui, l'espace est la première chose qui ne va pas dans l'URL. :) De rien. –

+0

Merci, ça aide. – Unheilig

2

des docs pour -[NSURL initWithString:]:

Si la chaîne était malformé, retourne nul.

Cette méthode s'attend à ce que URLString contienne tous les codes d'échappement de pourcentage nécessaires, qui sont ':', '/', '%', '#', ';' et '@'. Notez que les échappements '%' sont traduits via UTF-8.

qui soulève: quelle est votre contribution?

+0

Ensuite. Le code Nishanth.jeeva posté ne contient pas d'erreurs évidentes et devrait fonctionner comme prévu. –

+0

[webArray objectAtIndex: 1] contient "http://www.chennaispider.com/resources/2838-Details-Chennai-City-Fire-Stations.aspx"... Mais encore l'impression d'url null. – Jeeva

+0

Votre URL doit répondre aux exigences spécifiées dans la RFC 1738: http://www.ietf.org/rfc/rfc1738.txt - par ex. 'http: // : /? ' –

0
NSLog(@"urlString = %@",webStr); // its printing correct url string 

Il n'imprime pas la bonne chaîne d'URL. C'est juste l'impression de la chaîne. Donc si NSURL * webURL = [[NSURL alloc] initWithString: webStr] renvoie zéro cela signifie que votre chaîne n'est pas une URL valide.