objective c - guia - Obtenga partes de un NSURL en objetivo-c
qgis manual (2)
Este no es exactamente el tercer nivel, fíjate. Una URL se divide de esa manera:
- el protocolo o esquema (aquí,
http) - el delimitador
:// - el nombre de usuario y la contraseña (aquí no hay ninguno, pero podría ser
username:password@hostname) - el nombre de host (aquí,
digg.com) - el puerto (que sería
:80después del nombre de dominio, por ejemplo) - el camino (aquí,
/news/business/24hr) - la cadena del parámetro (todo lo que sigue a un punto y coma)
- la cadena de consulta (eso sería si tuviera parámetros GET como
?foo=bar&baz=frob) - el fragmento (eso sería si tuvieras un ancla en el enlace, como
#foobar).
Una URL con todas las funciones se vería así:
http://foobar:[email protected]:8080/some/path/file.html;params-here?foo=bar#baz
NSURL tiene una amplia gama de NSURL . Puede consultarlos en la documentación de la clase NSURL , sección Acceso a las partes de la URL . Para una referencia rápida:
-
-[NSURL scheme]= http -
-[NSURL resourceSpecifier]= (todo desde // hasta el final de la URL) -
-[NSURL user]= foobar -
-[NSURL password]= nicado -
-[NSURL host]= example.com -
-[NSURL port]= 8080 -
-[NSURL path]= /some/path/file.html -
-[NSURL pathComponents]= @ ["/", "some", "path", "file.html"] (tenga en cuenta que la inicial / es parte de ella) -
-[NSURL lastPathComponent]= file.html -
-[NSURL pathExtension]= html -
-[NSURL parameterString]= params-here -
-[NSURL query]= foo = barra -
-[NSURL fragment]= baz
Lo que querrás, sin embargo, es algo como eso:
NSURL* url = [NSURL URLWithString:@"http://digg.com/news/business/24hr"];
NSString* reducedUrl = [NSString stringWithFormat:
@"%@://%@/%@",
url.scheme,
url.host,
url.pathComponents[1]];
Para su URL de ejemplo, lo que parece querer es el protocolo, el host y el primer componente de ruta. (El elemento en el índice 0 en la matriz devuelta por -[NSString pathComponents] es simplemente "/", por lo que querrá el elemento en el índice 1. Las otras barras se descartan).
Tengo un NSString con el valor de
http://digg.com/news/business/24hr
¿Cómo puedo obtener todo antes del 3er nivel?
http://digg.com/news/