Відповіді:
Майте на увазі, це не зовсім третій рівень. URL поділено так:
http)://роздільникusername:password@hostname)digg.com):80після доменного імені)/news/business/24hr)?foo=bar&baz=frob)#foobar)."Повнофункціональна" URL-адреса виглядатиме так:
http://foobar:nicate@example.com:8080/some/path/file.html;params-here?foo=bar#baz
NSURLмає широкий спектр аксесуарів. Ви можете перевірити їх у документації до NSURLкласу, розділ Доступ до частин URL-адреси . Для швидкого ознайомлення:
-[NSURL scheme] = http-[NSURL resourceSpecifier] = (все від // до кінця URL-адреси)-[NSURL user] = foobar-[NSURL password] = нікат-[NSURL host] = example.com-[NSURL port] = 8080-[NSURL path] = /some/path/file.html-[NSURL pathComponents] = @ ["/", "деякий", "шлях", "file.html"] (зауважте, що початковий / є його частиною)-[NSURL lastPathComponent] = file.html-[NSURL pathExtension] = html-[NSURL parameterString] = парами-тут-[NSURL query] = foo = бар-[NSURL fragment] = базЩо ви хочете, це щось таке:
NSURL* url = [NSURL URLWithString:@"http://digg.com/news/business/24hr"];
NSString* reducedUrl = [NSString stringWithFormat:
@"%@://%@/%@",
url.scheme,
url.host,
url.pathComponents[1]];
Для вашої прикладної URL-адреси вам здається, що це протокол, хост і перший компонент шляху. (Елемент з індексом 0 у масиві, що повертається, -[NSString pathComponents]просто "/", тому ви хочете, щоб елемент в індексі 1. Інші косої риски відкидаються.)
file.htmlне вказано в пунктах кулі - я бачу, що ми стрибаємо зі шляху до рядка запиту ...
[url.pathComponents objectAtIndex:1]замість індексу0, оскільки косої риси - це фактично елементи масиву, що призводить до виведення коду в цій відповідіhttp://digg.com//