2010-04-21 3 views
6

un autre problème où je semble avoir trouvé une solution pour ObjC mais pas MonoTouch.Une chaîne d'URL valide comme NSUrl devient null

Je veux un NSUrl d'une URL (sous forme de chaîne).

La chaîne peut contenir des espaces et des antislashs.

Pourquoi NSUrl renvoie-t-il une valeur nulle pour une telle chaîne, même s'il s'agit d'URL valides dans un navigateur?

Par exemple: NSUrl foo = NSUrl.FromString (@ "http://google.com/search? \ Query");

foo == null

Toutes les suggestions?

+0

Pouvez-vous poster plus de code? Ce que vous avez ci-dessus semble absolument bien. – SomaMan

+0

@Mike - si vous avez obtenu ma réponse correcte, veuillez l'accepter. –

Répondre

1

Vous avez probablement besoin de traiter la première chaîne avec

stringByAddingPercentEscapesUsingEncoding: 

... afin qu'il puisse traiter une URL valide. [URL de la chaîne de caractères NSURL: [googlSearchString stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding]] [

0

URLWithString: crée et retourne un objet NSURL initialisé avec une chaîne de caractères fournie.

  • (id) URLWithString: (NSString *) URLString Paramètres URLString la chaîne avec laquelle pour initialiser l'objet NSURL. Doit être une URL conforme à RFC 2396. Cette méthode analyse URLString conformément aux RFC 1738 et 1808. (Pour créer des objets NSURL pour les chemins de système de fichiers, utilisez fileURLWithPath: isDirectory: à la place.) Valeur de retour Un objet NSURL initialisé avec URLString. Si la chaîne a été malformée, renvoie zéro.
0

NSString * urlString = @"http://example/newcase/path/fileNames"; urlString = [urlString stringByAddingPercentEscapesUsingEncoding:NSISOLatin1StringEncoding]; NSURL * url = [NSURL URLWithString:urlString]; NSLog(@"URL: %@", url);

Questions connexes