जवाबों:
यह बिलकुल तीसरे स्तर की बात नहीं है, तुम मन हो। 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]
= फोबार-[NSURL password]
= नट-[NSURL host]
= example.com-[NSURL port]
= 8080-[NSURL path]
= /some/path/file.html-[NSURL pathComponents]
= @ ["/", "कुछ", "पथ", "file.html"] (ध्यान दें कि प्रारंभिक / इसका हिस्सा है)-[NSURL lastPathComponent]
= file.html-[NSURL pathExtension]
= html-[NSURL parameterString]
= परम-यहाँ-[NSURL query]
= फू = बार-[NSURL fragment]
= बाजहालाँकि आप जो चाहते हैं, वह कुछ इस तरह है:
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]
इंडेक्स के बजाय प्राप्त करने की आवश्यकता है0
, क्योंकि स्लैश वास्तव में एरे के तत्व हैं, जिससे आउटपुट के जवाब में कोड होता हैhttp://digg.com//