답변:
이것은 정확히 세 번째 수준이 아닙니다. 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]
= @ [ "/", "some", "path", "file.html"] (이니셜 /이 그 일부임을 참고)-[NSURL lastPathComponent]
= file.html-[NSURL pathExtension]
= html-[NSURL parameterString]
= 여기에 params-[NSURL query]
= foo = bar-[NSURL fragment]
= baz하지만 원하는 것은 다음과 같습니다.
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]
index 대신0
http://digg.com//