Yanıtlar:
Unutmayın, bu tam olarak üçüncü seviye değil. Bir URL şu şekilde bölünür:
http
)://
sınırlayıcıusername:password@hostname
)digg.com
):80
örneğin alan adından sonra olacaktır )/news/business/24hr
)?foo=bar&baz=frob
)#foobar
)."Tam özellikli" bir URL şöyle görünür:
http://foobar:nicate@example.com:8080/some/path/file.html;params-here?foo=bar#baz
NSURL
geniş bir erişimci yelpazesine sahiptir. Bunları, NSURL
sınıfın belgelerinde , URL'nin Parçalarına Erişim bölümünde kontrol edebilirsiniz . Hızlı başvuru için:
-[NSURL scheme]
= http-[NSURL resourceSpecifier]
= (//'den URL'nin sonuna kadar her şey)-[NSURL user]
= foobar-[NSURL password]
= nicate-[NSURL host]
= example.com-[NSURL port]
= 8080-[NSURL path]
= /some/path/file.html-[NSURL pathComponents]
= @ ["/", "bir", "yol", "dosya.html"] (baş harfinin / bunun bir parçası olduğuna dikkat edin)-[NSURL lastPathComponent]
= file.html-[NSURL pathExtension]
= html-[NSURL parameterString]
= parametreler-burada-[NSURL query]
= foo = bar-[NSURL fragment]
= bazYine de isteyeceğiniz şey bunun gibi bir şey:
NSURL* url = [NSURL URLWithString:@"http://digg.com/news/business/24hr"];
NSString* reducedUrl = [NSString stringWithFormat:
@"%@://%@/%@",
url.scheme,
url.host,
url.pathComponents[1]];
Örnek URL'niz için, istediğiniz gibi görünen şey protokol, ana bilgisayar ve ilk yol bileşenidir. (Döndürülen dizideki 0 dizinindeki öğe -[NSString pathComponents]
basitçe "/" dir, bu nedenle öğeyi dizin 1'de isteyeceksiniz. Diğer eğik çizgiler atılır.)
file.html
madde işaretlerinde listelenmemiştir
[url.pathComponents objectAtIndex:1]
indeks yerine almanız gerekir0
, çünkü eğik çizgiler aslında dizinin öğeleridir ve bu yanıttaki kodun çıkmasına neden olurhttp://digg.com//