如何删除带有特殊字符的 NSURL 的最后路径

How to remove last path of NSURL with special characters

提问人:Loren 提问时间:4/26/2022 更新时间:4/26/2022 访问量:206

问:

所以我有点困惑。我有一个这样的 NSURL

https://something/something/test#4.html

我想删除最后一条路径。我尝试使用URLByDeletingLastPathComponent方法,但后来导致了这一点。

https://something/something/#4.html

我希望最终结果如下。

https://something/something
ios swift objective-c nsstring nsurl

评论


答:

0赞 udi 4/26/2022 #1

首先,您必须删除片段。然后最后一条路径使用 .deletingLastPathComponent()

var url = URL(string: "https://something/something/test#4.html")

if let fragment = url?.fragment{
    url = URL(string: (url?.absoluteString.replacingOccurrences(of: "#\(fragment)", with: ""))!)
    url = url?.deletingLastPathComponent()
}

print(url!)

评论

0赞 matt 4/26/2022
不要使用 NSURL。使用 URL。
1赞 vadian 4/26/2022 #2

删除片段的一种聪明方法是URLComponents

let url = URL(string: "https://something/something/test#4.html")!

if var urlComponents = URLComponents(url: url, resolvingAgainstBaseURL: false) {
    urlComponents.fragment = nil
    let trimmedURL = urlComponents.url!.deletingLastPathComponent()
    print(trimmedURL)
}