2011-04-30 6 views
9

मेरे पास मेरे यूआरएल की एक स्ट्रिंग है .. मैं उस यूआरएल से डेटा प्राप्त करना चाहता हूं। इसके लिए मुझे NSURL की ऑब्जेक्ट बनाने की आवश्यकता है। समस्या यह है कि मैं NS12 वर्ग की URLWithString विधि का प्रयास करता हूं, यह शून्य लौटाता है। लेकिन जब मैं माई मैक की सफारी में यह लिंक खोलता हूं तो यह मुझे छवि दिखाता है।NSURL URLWithString: myString नील देता है?

मैं उपयोग कर रहा हूँ ..

NSString *str = @"http://chart.apis.google.com/chart?chs=150x150&cht=qr&chld=L|0&chl=http://MyServer.com/shareMyCard.php?value=1304057103"; 
NSURL *url = [NSURL URLWithString:str]; 
NSData *data = [NSData dataWithContentsOfURL:url]; 
UIImage *img = [UIImage imageWithData:data]; 

मैं नहीं जानता कि क्यों यूआरएल शून्य है। मुझे लगता है कि मेरी स्ट्रिंग में क्वेरी स्ट्रिंग की वजह से।

कोई भी विचार इस यूआरएल स्ट्रिंग से डेटा कैसे प्राप्त करें।

धन्यवाद

उत्तर

32

आपका यूआरएल नहीं के बराबर है, क्योंकि यह विशेष वर्ण होता है, URL में उनका उपयोग करने से पहले अपने URL पैरामीटर सांकेतिक शब्दों में बदलना करने के लिए इस निम्नलिखित समारोह का उपयोग करें -

-(NSString *) URLEncodeString:(NSString *) str 
{ 

    NSMutableString *tempStr = [NSMutableString stringWithString:str]; 
    [tempStr replaceOccurrencesOfString:@" " withString:@"+" options:NSCaseInsensitiveSearch range:NSMakeRange(0, [tempStr length])]; 


    return [[NSString stringWithFormat:@"%@",tempStr] stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 
} 
+0

मैं जानता हूँ कि यह दिन में देर हो चुकी है, लेकिन धन्यवाद इसके लिए बहुत कुछ - मेरी समस्या भी हल हो गई। – Robert