#ios #swift #url
#iOS #swift #url
Вопрос:
URL-адрес может иметь #sectionName
компонент, который ведет к той части сайта, где начинается этот раздел.
В Swift я пытаюсь добавить этот компонент, но он не работает. Я пытаюсь:
let url = URL(string: "example.com/component1")!
Позже я пытаюсь сделать:
url.appendingPathComponent("#sectionName")
но он возвращает example.com/component1#sectionName
вместо example.com/component1#sectionName
.
На момент создания URL-адреса у меня все еще нет названия раздела, поэтому я не могу сделать URL(string: "example.com/component1#sectionName")
Я также пытался избежать #
с #
помощью или \#
, но это не работает. Есть идеи, как добавить компонент, который является разделом?
Комментарии:
1.
Fragment identifier
нет, поэтому здесьpath component
его использовать неправильно.appendingPathComponent()
. Вы должны начать сURLComponents
Ответ №1:
Ваш #sectionName
компонент не является компонентом пути, и вы не можете его использовать appendingPathComponent
.
Возможно, вам потребуется использовать URLComponent
и добавлять fragment
:
var urlCompo = URLComponents(string: "example.com/component1")!
urlCompo.fragment = "sectionName"
let url = urlCompo.url!
print(url) //->example.com/component1#sectionName
Ответ №2:
При создании URL-адресов я рекомендую вам использовать (NS) URLComponents вместо ручного.
var components = URLComponents()
components.scheme = "https"
components.host = "example.com"
components.path = "/component1"
components.fragment = "sectionName"
let url = components.url
Комментарии:
1. @regina_fallangi мой путь был неправильным (для него нужна начальная косая черта). Я исправил это и протестировал сам, и теперь это работает.