LoginSignup
5
3

唐突だけど、absoluteStringとrelativeStringの違い調べてみた

Posted at

前談

URLをstringとして扱いたいケースでよく出てくる absoluteString と relatieveString
なんとなく、使っていたので今回を機に調べてみることにしました🐣

absoluteString

The absolute string for the URL.

URLの絶対文字列

relativeString

The relative portion of a URL.
If baseURL is nil, or if the URL is itself absolute, this is the same as absoluteString.

URLの相対部分
baseURLがnilの場合、またはURL自体が絶対の場合、absoluteStringと同じになる

なるほど?

比較パート

let sampleURL = URL(string: "https://hogehoge.com/path/to/resource/sample.mp3")!

print("absoluteString: ", sampleURL.absoluteString)
print("relativeString: ", sampleURL.relativeString)

結果

absoluteString: https://hogehoge.com/path/to/resource/sample.mp3
relativeString: https://hogehoge.com/path/to/resource/sample.mp3

これは、baseURLが nilなので absoluteString と relativeStringで変化が見られませんでしたね。

ではbaseURLを指定するパターンを見てみることにしましょう。

let baseURL = URL(string: "https://hogehoge.com")
let relativeURL = URL(string: "/path/to/resource/sample.mp3", relativeTo: baseURL)!

print("absoluteString: ", relativeURL.absoluteString)
print("relativeString: ", relativeURL.relativeString)

結果

absoluteString: https://hogehoge.com/path/to/resource/sample.mp3
relativeString: /path/to/resource/sample.mp3

結果に変化が見られました!

まとめ

relativeStringを使うには、URLを作る際に relativeToを通してbaseURLを設定する必要があるということがわかりました。
ということで、普通に使う分には absoluteStringで問題なさそうですね。

おわり

Links

5
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
3