and*_*lin 1 url nsurl ios swift
我有一个包含许多路径组件的URL。是否有删除所有路径组件的好方法?基本上,我只想保留方案和URL的主机。以及端口(如果有)。
我当然可以使用现有URL的相关属性来创建新的URL对象:
let newURL = "\(existingURL.scheme!)://\(existingURL.host!)"
Run Code Online (Sandbox Code Playgroud)
或循环遍历pathcomponents,删除最后一个组件,直到没有剩余。
但是,这两种解决方案似乎都不那么优雅,因此我正在寻找一种更好,更安全,更有效的解决方案。
我看到的唯一可能性是使用URLComponents和手动删除一些组件:
let url = URL(string: "http://www.google.com/and/my/path")!
print(url)
var components = URLComponents(url: url, resolvingAgainstBaseURL: false)!
components.path = ""
print(components.url!) // http://www.google.com
Run Code Online (Sandbox Code Playgroud)
如果您决定手动构建URL,则最好还是URLComponents这样做:
let url = URL(string: "http://www.google.com/and/my/path")!
var components = URLComponents()
components.scheme = url.scheme
components.host = url.host
print(components.url!) // http://www.google.com
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1948 次 |
| 最近记录: |