2011-02-05 18 views
9

NSURL प्रिंटिंग null। क्या कारण है?बनाया गया NSURL शून्य है

NSString *webStr = [[NSString alloc] initWithFormat:@"%@",[webArray objectAtIndex:1]]; 

NSLog(@"urlString = %@",webStr); // its printing correct url string 

NSURL *webURL = [[NSURL alloc] initWithString:webStr]; 

NSLog(@"url = %@",webURL); // its printing null 

[webURL release]; 

[webStr release]; 
+2

कृपया {} बटन पर क्लिक करके अपने प्रश्न में कोड को प्रारूपित करें। http://meta.stackexchange.com/questions/22186/how-do-i-format-my-code-blocks –

उत्तर

27

आप निम्नलिखित करना चाहिए।

NSString *webStr = [[NSString alloc] initWithFormat:@"%@",[webArray objectAtIndex:1]]; 

NSLog(@"urlString = %@",webStr); // its printing correct url string 

NSURL *webURL = [[NSURL alloc] initWithString:[webStr stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding]]; 

NSLog(@"url = %@",webURL); // it should print it 

[webURL release]; 

[webStr release]; 

मैंने NSASCIIStringEncoding का उपयोग किया है लेकिन आप यूटीएफ 8 भी या किसी अन्य एन्कोडिंग का उपयोग कर सकते हैं।

+0

हां अब केवल मैं आया यह जानने के लिए कि मूल्य में अंतरिक्ष है जो सरणी में है .. आपको बहुत धन्यवाद। – Jeeva

+0

हां, अंतरिक्ष पहली चीज है जो यूआरएल में ठीक नहीं है। :) आपका स्वागत है। –

+0

धन्यवाद, यह मदद करता है। – Unheilig

2
डॉक्स से -[NSURL initWithString:] के लिए

:

तो स्ट्रिंग विकृत हो गया, नहीं के बराबर देता है।

इस विधि URLString किसी भी आवश्यक प्रतिशत मुक्ति कोड, जो कर रहे हैं शामिल करने की उम्मीद है ':', '/', '%', '#', ';', और '@'। ध्यान दें कि '%' से बचने के लिए यूटीएफ -8 के माध्यम से अनुवाद किया जाता है।

जो जन्म देती है: अपने इनपुट क्या है?

+0

दूसरा। कोड निशांत.जीवा ने स्पष्ट त्रुटियों को शामिल नहीं किया है और उम्मीद के अनुसार काम करना चाहिए। –

+0

[webArray objectAtIndex: 1] अभी भी यूआरएल मुद्रण अशक्त शामिल है "http://www.chennaispider.com/resources/2838-Details-Chennai-City-Fire-Stations.aspx"...But। – Jeeva

+0

आपका यूआरएल आरएफसी 1738 में निर्दिष्ट आवश्यकताओं को पूरा करना होगा: http://www.ietf.org/rfc/rfc1738.txt - उदा। 'http: // : /? ' –

0
NSLog(@"urlString = %@",webStr); // its printing correct url string 

यह सही यूआरएल स्ट्रिंग को प्रिंट नहीं कर रहा है। यह सिर्फ स्ट्रिंग प्रिंट कर रहा है। तो यदि NSURL * webURL = [[NSURL alloc] initWithString: webStr] शून्य लौटाता है इसका मतलब है कि आपकी स्ट्रिंग मान्य यूआरएल नहीं है।