resolvingAgainstBaseURL

resolvingAgainstBaseURL

我不明白这两种 call 方式有什么区别:

NSURLComponents(URL: url, resolvingAgainstBaseURL: true)


NSURLComponents(URL: url, resolvingAgainstBaseURL: false)

而且我发现文档说明很难理解...
有人可以给我一个简单的例子来演示此api的工作原理吗?
(我尝试了许多不同的参数组合,但是它们产生的结果是相同的...)

最佳答案

如果您通过NSURL创建URL组件,则仅会有所不同
是相对于另一个NSURL创建的:

let baseURL = NSURL(string: "http://server/foo/")!
let url = NSURL(string: "bar/file.html", relativeToURL: baseURL)!
print(url.absoluteString)
// "http://server/foo/bar/file.html"

使用resolvingAgainstBaseURL == false,URL组件
仅代表网址的相对部分:
let comp1 = NSURLComponents(URL: url, resolvingAgainstBaseURL: false)!
print(comp1.string!)
// "bar/file.html"

使用resolvingAgainstBaseURL == true,URL组件
代表完全解析的URL:
let comp2 = NSURLComponents(URL: url, resolvingAgainstBaseURL: true)!
print(comp2.string!)
// "http://server/foo/bar/file.html"

关于swift - 初始化NSURLComponents实例时,将false和true传递给 'resolvingAgainstBaseURL'有什么区别?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38720933/

10-10 19:42