2016-12-23 76 views
-2

返回nil,我面臨着「NSURL URLWithString」方法的問題,「NSURL URLWithString」方法不適用於無效URL字符串

我期待得到在使用上述方法,如果該URL字符串無效爲零。但它的返回空值。
我附上了下面的代碼示例。

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

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

其他信息:

  • 我使用的XCode 8.1版。
  • 我也在iOS版本 (8,9,10)中測試過設備和模擬器。
  • 截至目前,我已經通過使用「canOpenURL」來檢查結果NSURL並避免進一步執行。但我需要知道爲什麼會出現這個問題。
+0

sampleURLString通過你的網址在這裏 –

+1

@HimanshuMoradiya:當通過任何URL,如 「http://www.google.com」 「URLWithString」 功能是否正常工作,並返回一個有效的NSURL,但只有當我傳遞如上所示的空url字符串時,我不會像它應該那樣得到零。 – Bharath

+0

你在使用webview嗎? –

回答

-2

您正在分配一個空字符串。 檢查你的字符串的長度,知道它是否爲空。

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

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

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

輸出:

示例URL串:(空)

示例網址:(空)

If you want to validate a URL 

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

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

} else{ 

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

目標C

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

斯威夫特

let url = NSURL(string: urlString.stringByAddingPercentEncodingWithAllowedCharacters(NSCharacterSet.URLQueryAllowedCharacterSet())!) 
相關問題