Réponses:
Ce n'est pas exactement le troisième niveau, remarquez. Une URL est divisée de cette façon:
http)://délimiteurusername:password@hostname)digg.com):80après le nom de domaine par exemple)/news/business/24hr)?foo=bar&baz=frob)#foobar).Une URL "complète" ressemblerait à ceci:
http://foobar:nicate@example.com:8080/some/path/file.html;params-here?foo=bar#baz
NSURLdispose d'un large éventail d'accesseurs. Vous pouvez les consulter dans la documentation de la NSURLclasse, section Accéder aux parties de l'URL . Pour référence rapide:
-[NSURL scheme] = http-[NSURL resourceSpecifier] = (tout de // à la fin de l'URL)-[NSURL user] = foobar-[NSURL password] = niquer-[NSURL host] = example.com-[NSURL port] = 8080-[NSURL path] = /some/path/file.html-[NSURL pathComponents] = @ ["/", "some", "path", "file.html"] (notez que l'initiale / en fait partie)-[NSURL lastPathComponent] = fichier.html-[NSURL pathExtension] = html-[NSURL parameterString] = paramètres-ici-[NSURL query] = toto = bar-[NSURL fragment] = bazCe que vous voudrez, cependant, c'est quelque chose comme ça:
NSURL* url = [NSURL URLWithString:@"http://digg.com/news/business/24hr"];
NSString* reducedUrl = [NSString stringWithFormat:
@"%@://%@/%@",
url.scheme,
url.host,
url.pathComponents[1]];
Pour votre exemple d'URL, ce que vous semblez vouloir, c'est le protocole, l'hôte et le premier composant de chemin. (L'élément à l'index 0 dans le tableau renvoyé par -[NSString pathComponents]est simplement "/", vous voudrez donc l'élément à l'index 1. Les autres barres obliques sont supprimées.)
file.htmln'est pas répertorié dans les puces - je vois que nous sautons du chemin à la chaîne de requête ...
[url.pathComponents objectAtIndex:1]place de l'index0, car les barres obliques sont en fait des éléments du tableau, ce qui entraîne la sortie du code de cette réponsehttp://digg.com//