2009-11-01 5 views
1

Je suis nouveau sur IPhone en développement.NSURL instancient pas correctement

J'ai un problème très étrange avec NSURL qui me rend fou. Je veux instancier l'objet NSURL pour l'utiliser dans le chargement de l'image. Mais l'instanciation ne se produit jamais correctement. Il dit toujours que mon URL est invalide.

Fondamentalement, j'utiliser le code ci-dessous:

NSString *str = @"http://google.com"; 
NSURL *url = [NSURL URLWithString:str]; 

mais j'ai aussi essayé beaucoup de différentes modifications (avec CFStringRef + CFURLCreateStringByAddingPercentEscapes et ainsi de suite). Tous ne travaillent pas pour moi. Dans le débogueur, l'URL est définie sur "Invalide".

Qu'est-ce que ce pourrait être? Je ne pense pas que ce soit un problème d'algorithmique ou d'environnement. Il pourrait s'agir de certains paramètres?

Avez-vous une idée de ce qui se passe?

+2

'NSURL * url = [NSURL URLWithString: @ "http://google.com"];' fonctionne très bien . Quel est votre code * réel *? –

+0

(mon commentaire ci-dessus a un 'http: //' en elle, mais le filtre a changé en lien) –

Répondre

2

Utilisez-vous ce code réel ou simplement le code "like"? Cette méthode renverra zéro si vous ne lui fournissez pas une chaîne valide avec tout s'est échappé correctement.

+0

Le code exact sont: 1) originaire de NSString échapper: NSString * str = @ "http: //google.com "; NSString * escaped = [chaîne_stratByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding]; NSURL * url = [URLWithString NSURL: échappée]; et 2) CFStringRef s'échappant: NSString * str = @ "http://google.com"; CFStringRef s'est échappé = CFURLCreateStringByAddingPercentEscapes (kCFAllocatorDefault, (CFStringRef) str, NULL, (CFStringRef) @ "; /?: @ & = + $,", KCFStringEncodingUTF8); NSURL * url = [URLWithString NSURL: (NSString *) s'est échappé]; Les deux sont défaillants. – taokakao

3

Votre chaîne n'est pas échappé correctement - vous devriez le faire comme ceci:

NSString *str = @"http://google.com"; 
NSString *escStr = [str stringByAddingPercentEscapesUsingEncoding: 
               NSASCIIStringEncoding]; 
NSURL *url = [NSURL URLWithString:escStr];
+0

Ce code fait la même erreur. Quand je regarde dans le débogueur: le paramètre _urlString de l'URL est "Invalide". Et l'utilisation suivante de l'url soulève des exceptions. – taokakao