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
NSURLgeniş bir erişimci yelpazesine sahiptir. Bunları, NSURLsı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.htmlmadde 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//