Этот код работает просто отлично:
let path = "https://apps.apple.com/developer/john-doe/id32123123#see-all/mac-apps"
let url = URL(string: path)
Мне просто нужно было удалить !
.Путь не является обязательным, поэтому развернуть нечего.
Ваш последний метод не тот, который вам следует использовать для буквальных URL-адресов, подобных этому, но я могу объяснить, почему он все равно "не работает" в соответствии с вашими ожиданиями.#
отмечает начало фрагмента URL.Это специальный символ, поэтому система кодирует его для вас в процентах, когда вы пытаетесь использовать его как часть пути.Вот фиксированный код:
var components = URLComponents()
components.scheme = "https"
components.host = "apps.apple.com"
components.path = "/developer/john-doe/id32123123"
components.fragment = "see-all/mac-apps"
let url = components.url! // => "https://apps.apple.com/developer/john-doe/id32123123#see-all/mac-apps"
Вы должны прочитать о стандарте URL.