2010-04-21 33 views
6

另一個問題,我似乎找到了ObjC的解決方案,但不是MonoTouch。作爲NSUrl的有效URL字符串變爲空

我想要一個來自URL的NSUrl(作爲字符串)。

該字符串可能包含空格和反斜槓。

爲什麼NSUrl爲這樣的字符串返回null,即使這些在瀏覽器中是有效的url?

例如: NSUrl foo = NSUrl.FromString(@「http://google.com/search?\ query」);

foo == null

有什麼建議嗎?

+0

你能發佈更多的代碼?你上面有什麼看起來非常好。 – SomaMan 2013-07-10 11:31:59

+0

@Mike - 如果您的答案正確無誤,請接受。 – 2017-04-19 06:22:33

回答

1

你可能需要用

stringByAddingPercentEscapesUsingEncoding: 

首先處理字符串...所以它可以處理一個有效的URL。

13

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

引用由
Stack Overflow....

0

URLWithString: 創建並返回與所提供的串初始化的NSURL對象。

  • (ID)URLWithString:(的NSString *)URLString 參數 URLString 與初始化NSURL對象的字符串。必須是符合RFC 2396的URL。此方法根據RFC 1738和1808解析URLString。(要爲文件系統路徑創建NSURL對象,請改爲使用fileURLWithPath:isDirectory:) 返回值 用URLString初始化的NSURL對象。如果字符串格式不正確,則返回nil。
0

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