Получить доменную часть строки URL? - PullRequest
18 голосов
/ 28 мая 2011

У меня есть NSString с URL, таким образом:

http://someurl.com/something

Как я могу получить только someurl.com?Я уже попробовал substringToIndex без удачи :(

Заранее спасибо:)

Ответы [ 4 ]

67 голосов
/ 28 мая 2011

Objective-C

NSString* urlString = @"http://someurl.com/something";
NSURL* url = [NSURL URLWithString:urlString];
NSString* domain = [url host];

Swift 2

var urlString = "http://someurl.com/something"
var url = NSURL(string: urlString)
var domain = url?.host

Swift 3 +

var urlString = "http://someurl.com/something"
var url = URL(string: urlString)
var domain = url?.host
11 голосов
/ 28 мая 2011

Использование

[[NSURL URLWithString:@"http://someurl.com/something"] host]
1 голос
/ 28 мая 2011

Вам следует взглянуть на метод host () класса NSURL .

0 голосов
/ 08 июня 2018

Swift 4

А если вы используете Пользовательские схемы URL скажем, для глубоких ссылок, например:

myapp:homescreen

(и не имеют «прямой косой черты с именем хоста» (//www.bbc)), одно из решений, которое мне помогло извлечь «homescreen», - это метод using the index ниже и затем pattern matching для очистить все после ":"

let index = absoluteString.index(absoluteString.startIndex, offsetBy: 5)
String(absoluteString[index...])

url.host или absoluteURL.host равно nil в этом сценарии

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...