快速将部分添加到URL

时间:2019-04-10 16:33:45

标签: ios swift url

URL可以具有#sectionName组件,该组件指向该部分开始的网站部分。

在Swift中,我试图添加该组件,但是它不起作用。我正在尝试:

let url = URL(string: "example.com/component1")!

后来我想做的事:

url.appendingPathComponent("#sectionName")

但是它返回example.com/component1%23sectionName而不是example.com/component1#sectionName

在创建URL时,我仍然没有该部分的名称,因此无法执行URL(string: "example.com/component1#sectionName")

我也尝试用#\#来转义\\#,但是它不起作用。有什么想法如何添加一个组成部分的组件吗?

2 个答案:

答案 0 :(得分:2)

您的 #sectionName组件不是路径组件,您不能使用appendingPathComponent

您可能需要使用URLComponent并添加fragment

var urlCompo = URLComponents(string: "example.com/component1")!
urlCompo.fragment = "sectionName"
let url = urlCompo.url!
print(url) //->example.com/component1#sectionName

答案 1 :(得分:1)

构建网址时,建议您使用(NS)URLComponents而不是手动。

var components = URLComponents()
components.scheme = "https"
components.host = "example.com"
components.path = "/component1"
components.fragment = "sectionName"

let url = components.url