元々は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")
}