2010-04-21 2 views
6

ein anderes Problem, bei dem ich eine Lösung für ObjC gefunden habe, aber nicht MonoTouch.Gültige URL-Zeichenfolge als NSUrl wird Null

Ich möchte eine NSUrl von einer URL (als String).

Die Zeichenfolge kann Leerzeichen und umgekehrte Schrägstriche enthalten.

Warum gibt NSUrl für eine solche Zeichenfolge null zurück, obwohl dies gültige URLs in einem Browser sind?

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

foo == null

Irgendwelche Vorschläge?

+0

Könnten Sie mehr Code schreiben? Was Sie oben haben, sieht absolut gut aus. – SomaMan

+0

@Mike - wenn Sie meine Antwort richtig haben, akzeptieren Sie es bitte. –

Antwort

1

Sie müssen wahrscheinlich die Zeichenfolge zuerst mit

stringByAddingPercentEscapesUsingEncoding: 

verarbeiten ... so, dass es eine gültige URL verarbeitet werden können.

13

[NSURL URLWithString: [googlSearchString stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding]];

von
Stack Overflow....

0

URLWithString Referenced: Erzeugt und gibt ein NSURL Objekt mit einem bereitgestellten Zeichenfolge initialisiert.

  • (id) URLWithString: (NSString *) urlString Parameter URLString die Zeichenkette, die die NSURL Objekt zu initialisieren. Muss eine URL sein, die RFC 2396 entspricht. Diese Methode analysiert URLString gemäß den RFCs 1738 und 1808. (Um NSURL-Objekte für Dateisystempfade zu erstellen, verwenden Sie stattdessen fileURLWithPath: isDirectory.) Rückgabewert Ein mit URLString initialisiertes NSURL-Objekt. Wenn die Zeichenfolge falsch formatiert wurde, wird nil zurückgegeben.
0

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