Posted at

Swiftでurlからhost名抽出の際にはNSURLComponentsを使った方が良さ気

More than 1 year has passed since last update.

元々はNSURLのhostメソッドを使っていたのですが、NSURLのhostメソッドは RFC 1808 に準拠しており、以下のようなURLではnilが返ってきてしまうようだ。

http://test.com?abc

なので、単純にhost名だけが欲しい場合は、NSURLComponentsのhostメソッドを使った方が安全だと思いました。

let url: String = "http://test.com?abc"

if let component: NSURLComponents = NSURLComponents(string: url) {
print(component.host) // Optional("test.com")
}