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")
我也尝试用#
或\#
来转义\\#
,但是它不起作用。有什么想法如何添加一个组成部分的组件吗?
答案 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