69

次の 2 つの呼び出し方法の違いがわかりません。

NSURLComponents(URL: url, resolvingAgainstBaseURL: true)

NSURLComponents(URL: url, resolvingAgainstBaseURL: false)

そして、ドキュメントの説明がわかりにくいことがわかりました...誰かがこのAPIの仕組みを示す簡単な例を教えてもらえますか? (パラメータのさまざまな組み合わせを試しましたが、結果は同じでした...)

4

1 に答える 1

112

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 コンポーネントは 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"
于 2016-08-02T13:10:38.513 に答える