J'ai un NSString avec la valeur deObtenez parties d'un NSURL en c objectif
http://digg.com/news/business/24hr
Comment puis-je obtenir tout avant le 3ème niveau?
http://digg.com/news/
J'ai un NSString avec la valeur deObtenez parties d'un NSURL en c objectif
http://digg.com/news/business/24hr
Comment puis-je obtenir tout avant le 3ème niveau?
http://digg.com/news/
Ce n'est pas exactement le troisième niveau, pensez-y. Une URL est divisée comme cette façon:
http
)://
username:[email protected]
)digg.com
):80
après le nom de domaine par exemple)/news/business/24hr
)?foo=bar&baz=frob
)#foobar
).A "entièrement en vedette" URL ressemblerait à ceci:
http://foobar:[email protected]:8080/some/path/file.html;params-here?foo=bar#baz
NSURL
a une large gamme de accesseurs. Vous pouvez les vérifier dans la documentation de la classe NSURL
, section Accès aux parties de l'URL. Pour une référence rapide:
-[NSURL scheme]
= http-[NSURL resourceSpecifier]
= (tout de // à la fin de l'URL)-[NSURL user]
= foobar-[NSURL password]
= muniquer-[NSURL host]
= example.com-[NSURL port]
= 8080-[NSURL path]
=/some/pat h/file.html-[NSURL pathComponents]
= @ [ "/", "un peu", "chemin", "file.html"] (notez que la première partie/est de celui-ci)-[NSURL lastPathComponent]
= fichier.html-[NSURL pathExtension]
= html-[NSURL parameterString]
= params-ici-[NSURL query]
= foo = bar-[NSURL fragment]
= bazQu'est-ce 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 URL exemple, ce que vous semblez vouloir, c'est le protocole, l'hos t et le premier composant de chemin. (L'élément à l'index 0 dans le tableau retourné par -[NSString pathComponents]
est tout simplement «/», de sorte que vous voulez que l'élément à l'index 1. Les autres barres obliques sont mis au rebut.)
merci beaucoup – Melina
génial répondre à l'homme, merci! –
pour quiconque lit ceci: vous devez obtenir '[url.pathComponents objectAtIndex: 1]' au lieu de l'index '0', car les barres obliques sont en fait des éléments du tableau, ce qui provoque la sortie du code dans cette réponse' http: // digg.com // ' – Dima