2016-12-23 4 views
-2

ich ein Problem bin vor mit „NSURL URLWithString“ Methode,„NSURL URLWithString“ Methode nicht null für ungültige URL-Zeichenfolge Rückkehr

I Null bei der Verwendung des oben genannten Verfahrens zu erhalten erwarte, wenn die URL-Zeichenfolge ungültig ist. Aber es gibt stattdessen leeren Wert zurück.
Ich habe das folgende Codebeispiel angehängt.

NSString *sampleURLString = @""; 
NSURL *sampleURL = [NSURL URLWithString:sampleURLString]; 

NSLog(@"Sample url string : %@", sampleURLString); 
NSLog(@"Sample url : %@", sampleURL); 

Zusätzliche Informationen:

  • Ich bin mit XCode Version 8.1.
  • Ich habe auch in iOS Version (8,9,10) in Gerät und Simulator getestet.
  • Ab sofort habe ich dies mit "canOpenURL" behandelt, um die resultierende NSURL zu überprüfen und die weitere Ausführung zu vermeiden. Aber ich muss wissen, warum dieses Problem auftritt.
+0

sampleURLString passieren Hier URL –

+1

@HimanshuMoradiya: Wenn jede URL übergeben wie "http://www.google.com" "URLWithString" -Funktion richtig funktioniert und eine gültige NSURL Rückkehr Aber nur wenn ich eine leere URL-Zeichenfolge wie oben übergebe, werde ich nicht null, wie es sein soll. – Bharath

+0

arbeiten Sie mit Webview? –

Antwort

-2

Sie weisen eine leere Zeichenfolge zu. Überprüfen Sie die Länge Ihrer Zeichenfolge zu wissen, ist es leer oder nicht.

NSString *sampleURLString = @""; 
    if (sampleURLString.length <=0) { 
     sampleURLString = nil; 

    } 
    NSURL *sampleURL = [NSURL URLWithString:sampleURLString]; 

    NSLog(@"Sample url string : %@", sampleURLString); 
    NSLog(@"Sample url : %@", sampleURL); 

Ausgang:

Beispiel-URL string: (null)

Beispiel-URL: (null)

If you want to validate a URL 

if (sampleURL && sampleURL.scheme && sampleURL.host) { 

    NSLog(@"valid: %@", sampleURLString); 

} else{ 

NSLog(@"Invalid: %@", sampleURLString); 
} 
-1

Objective C

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

Swift

let url = NSURL(string: urlString.stringByAddingPercentEncodingWithAllowedCharacters(NSCharacterSet.URLQueryAllowedCharacterSet())!) 
Verwandte Themen