第二个正斜杠会发生什么?

时间:2015-05-23 02:26:36

标签: ios swift url-encoding

为什么

"http://blah/".stringByAppendingPathComponent("foo")

返回

"http:/blah/foo"

注意丢弃的正斜杠。

3 个答案:

答案 0 :(得分:3)

如果您阅读了stringByAppendingPathComponent的文档,您将看到以下声明:

  

请注意,此方法仅适用于文件路径(例如,   URL的字符串表示。)

stringByAppendingPathComponent的实现是"修复"它认为是一个格式错误的文件路径。

您应该使用NSURLs或stringByAppendingString。

答案 1 :(得分:0)

方法stringByAppendingPathComponent应该与文件路径一起使用,而不是与网址一起使用,所以我的感觉是方法逻辑正在考虑//错误并修复它。

答案 2 :(得分:0)

您需要先将链接转换为NSURL,然后才能使用URLByAppendingPathComponent:

if let blaFooURL = NSURL(string:"http://blah/")?.URLByAppendingPathComponent("foo") {
     println(blaFooURL)  // "http://blah/foo"
}