J'ai un NSString avec la valeur de
http://digg.com/news/business/24hr
Comment puis-je tout obtenir avant le 3ème niveau?
http://digg.com/news/
J'ai un NSString avec la valeur de
http://digg.com/news/business/24hr
Comment puis-je tout obtenir avant le 3ème niveau?
http://digg.com/news/
Ce n'est pas exactement le troisième niveau, vous l'esprit. Une URL est divisé de cette manière:
http
)://
délimiteurusername:password@hostname
)digg.com
):80
après le nom de domaine par exemple)/news/business/24hr
)?foo=bar&baz=frob
)#foobar
).Un "complet" de l'URL ressemblera à ceci:
http://foobar:nicate@example.com:8080/some/path/file.html;params-here?foo=bar#baz
NSURL
a un large éventail d'accesseurs. Vous pouvez les vérifier dans la documentation de l' NSURL
classe, la section Accès à l'Parties de l'URL. Pour une référence rapide:
-[NSURL scheme]
= http-[NSURL resourceSpecifier]
= (tout le contenu de // à la fin de l'URL)-[NSURL user]
= foobar-[NSURL password]
= communiquent-[NSURL host]
= example.com-[NSURL port]
= 8080-[NSURL path]
= /some/path/file.html-[NSURL pathComponents]
= @["/", "certains", "chemin", "file.html"] (à noter que la première / en fait partie)-[NSURL lastPathComponent]
= file.html-[NSURL pathExtension]
= html-[NSURL parameterString]
= params-ici-[NSURL query]
= foo=bar-[NSURL fragment]
= bazCe que vous voulez, cependant, 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 du chemin. (L'élément à l'indice 0 du tableau retourné par -[NSString pathComponents]
est tout simplement "/", de sorte que vous aurez envie de l'élément à l'indice 1. Les autres barres obliques sont ignorés.)
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.