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

What happens to the second forward slash?

为什么

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

return

"http:/blah/foo"

注意去掉的正斜杠。

如果您阅读 stringByAppendingPathComponent 的文档,您将看到以下语句:

Note that this method only works with file paths (not, for example, string representations of URLs).

stringByAppendingPathComponent 的实现是"fixing"它认为格式错误的文件路径。

您应该使用 NSURL 或 stringByAppendingString。

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

您需要先将 link 转换为 NSURL,然后您可以使用 URLByAppendingPathComponent:

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