2012-10-29 19 views
6

मैं एक स्ट्रिंग यूआरएलURL होस्ट नाम रिटर्न शून्य

मैं NSURL के मेजबान संपत्ति का उपयोग कर होस्ट नाम पाने के लिए स्ट्रिंग से NSURL ऑब्जेक्ट बनाने के लिए कोशिश कर रहा हूँ और उसके बाद के होस्ट नाम पाने के लिए की जरूरत है। लेकिन होस्ट का नाम हमेशा शून्य है।

NSURL *url = [NSURL URLWithString: @"www.google.com"]; 
NSLog(@"Host name %@", url.host); 

लेकिन मेजबान का नाम हमेशा शून्य है। कोई भी बता सकता है कि होस्ट नाम शून्य क्यों है?

संपादित करें: मुझे खेद है कि प्रश्न पूछते समय मुझे एक टाइपो था और मुझे एक कॉमा याद आया। लेकिन समस्या अभी भी वही है।

+0

आपने अपने एनएसएलओजी – Jasper

+0

में कॉमा भी छोड़ा है समस्या यूआरएल में गायब http: // है - नीचे मेरा जवाब देखें। – rmaddy

उत्तर

7

प्रति Apple documentation के रूप में,

- (NSString *)host; 

वापसी मान:

यूआरएल के मेजबान। रिसीवर RFC 1808 के अनुरूप नहीं है, तो रिटर्न शून्य

तो अगर यह RFC 1808 के अनुरूप नहीं है, यह नहीं के बराबर वापस आ जाएगी।

<scheme>://<net_loc>/<path>;<params>?<query>#<fragment> 

तो तुम http:// भी जोड़ने के लिए है, जबकि NSURL बनाने की जरूरत है: RFC 1808 की परिभाषा के अनुसार,

सही सिंटैक्स इस प्रकार है।

NSURL *url = [NSURL URLWithString:@"http://www.google.com"]; 
NSLog(@"Host name %@", url.host); 
+1

हाँ मुझे लगता है कि मैंने इसे अनदेखा किया। मैं इंप्रेशन के तहत था, अगर यूआरएल ऑब्जेक्ट योजना के बिना स्ट्रिंग का उपयोग कर शून्य नहीं है तो होस्ट नाम भी शून्य नहीं होना चाहिए। – codemaster

1

अपने लापता एक "के बाद www.google.com? में यह जोड़ने का प्रयास करें की तरह लग रहा।

NSURL *url = [NSURL URLWithString: @"www.google.com"]; 
NSLog(@"Host name %@", url.host);    ^
        ^

(दूसरी पंक्ति मैं भी एक अल्पविराम जोड़ा पर सूचना, मैं एक साथ इस पर बात करने की कोशिश की^सबसे अच्छा मैं कर सकता)

संपादित करें:। आह, ठीक है तो यह तो दूसरी लाइन पर अल्पविराम हो सकता है

+1

यह भी देखें कि @ACB ने क्या कहा, यह आपकी मुख्य समस्या हो सकती है और वह सही है। – Dustin

0

यह बेहतर काम करेगा अगर आप (http जोड़ सकता हूँ: //):

NSURL *url = [NSURL URLWithString: @"http://www.google.com"]; 
NSLog(@"Host name %@", url.host); 
,210
संबंधित मुद्दे