前談
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
で問題なさそうですね。
おわり