2012-03-07 12 views
9

यहां एक्सकोड नौसिखिया और मैं यह पता लगाने की कोशिश कर रहा हूं कि निम्नलिखित क्यों हो रहा है ... जिस तरह से कोड वर्तमान में लिखा गया है, मैं 'एनएसआईएनवालिडअर्गमेंट एक्सेप्शन' , कारण: xcode में 'डेटा पैरामीटर शून्य है'। यूआरएल ब्राउज़र पर ठीक काम करता है। जब मैं "फिल्टर =% 7 बी% 22region% 22% 3 ए% 22 सीए% 22% 7 डी" यूआरएल का हिस्सा हटा देता हूं, यह एक्सकोड में ठीक काम करता है, लेकिन जब यूआरएल का यह खंड शामिल होता है, तो जब मुझे त्रुटि संदेश मिलता है । मैं% के प्रतिस्थापन 22 लेकिन अभी भी कुछ नहीं में \ "का उपयोग कर की कोशिश की है। कोई सुझाव बहुत सराहना कर रहे हैं।'NSInvalidArgumentException', कारण: 'डेटा पैरामीटर शून्य है'

NSURL *url=[NSURL URLWithString:[@"http://api.v3.factual.com/t/restaurants-us?q=peets+coffee&filters=%7B%22region%22%3A%22CA%22%7D&KEY=p7kwKMFUSyVi64FxnqWmeSDEI41kzE3vNWmwY9Zi"stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]; 

    NSData* data = [NSData dataWithContentsOfURL: url]; 
+0

" फ़िल्टर =% 7 बी% 22region% 22% 3 ए% 22 सीए% 22% 7 डी के लिए वास्तविक मूल्य क्या है " – Nirmalsinh

उत्तर

6

कोड आप दुर्घटनाग्रस्त बिना काम करता है पोस्ट किया है, लेकिन डेटा वस्तु किया जा रहा समाप्त होता है nil

data == nil ऐप्लिकेशन क्रैश के बाद से।

कुछ बिंदु बाद में आप का उपयोग data कोड में पर। मैं में प्रवेश करने की सलाह देते हैं

http://api.v3.factual.com/t/restaurants-us?q=peets+coffee&filters=%7B%22region%22%3A%22CA%22%7D&KEY=p7kwKMFUSyVi64FxnqWmeSDEI41kzE3vNWmwY9Zi

और

http://api.v3.factual.com/t/restaurants-us?q=peets+coffee&KEY=p7kwKMFUSyVi64FxnqWmeSDEI41kzE3vNWmwY9Zi

एक ब्राउज़र में स्थिति

अद्यतन

समस्या थी एन्कोडिंग पहले से ही इनकोडिंग तार पर कुछ प्रकाश डाला करने के लिए। (% की% 25 को इनकोड किया जा रहा)

NSString *urlBase = @"http://api.v3.factual.com/t/restaurants-us?"; 
NSString *urlData = [@"q=peets+coffee&filters={\"region\":\"CA\"}&KEY=p7kwKMFUSyVi64FxnqWmeSDEI41kzE3vNWmwY9Zi"stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 
NSURL *url=[NSURL URLWithString:[NSString stringWithFormat:@"%@%@",urlBase,urlData]]; 
NSData* data = [NSData dataWithContentsOfURL: url]; 

काम करता है, क्योंकि आप एक गैर इनकोडिंग स्ट्रिंग एन्कोडिंग कर रहे हैं।

या

NSURL *url=[NSURL URLWithString:[NSString stringWithFormat:@"http://api.v3.factual.com/t/restaurants-us?q=peets+coffee&filters=%7B%22region%22%3A%22CA%22%7D&KEY=p7kwKMFUSyVi64FxnqWmeSDEI41kzE3vNWmwY9Zi"]]; 
NSData* data = [NSData dataWithContentsOfURL: url]; 

क्योंकि काम करेगा के रूप में अपने पद है, अपने स्ट्रिंग पहले से ही उचित रूप से इनकोड किया गया था

+0

जब मैं फिल्टर =% 7 बी% 22region% 22% 3 ए% 22 सीए% 22% 7 डी निकालता हूं, प्रोग्राम क्रैश किए बिना ठीक काम करता है। समस्या फिल्टर =% 7 बी% 22region% 22% 3A% से आ रही है 22 सीए% 22% 7 डी सही? क्या आपको लगता है कि एक्सकोड एक पूर्णांक के रूप में% 22 पढ़ रहा है? – user1254909

+0

@ user1254909 समस्या पहले ही स्ट्रिंग को एन्कोड करने और इसे फिर से एन्कोड करने के साथ थी। –

7

मैं भी यही समस्या थी: 'न आया हुआ अपवाद के कारण

समाप्त एप्लिकेशन NSInvalidArgumentException ', कारण:' डेटा पैरामीटर शून्य है '

लेकिन मैंने इसे हल किया था। कारण मेरा एपीआई यूआरएल गलत है। कृपया अपना एपीआई यूआरएल देखें। आप के लिए गुड लक!

1

मैं एक ही मुद्दा था और मैं ऊपरी मामले में सेवा के नाम पर एक शब्द पाया, जबकि वास्तव में यह सर्वर पर कम में था। मैंने यूआरएल में नाम तय कर लिया है और समस्या हल हो गई है। धन्यवाद।

1

मुझे लगता है कि ऑफ़लाइन मोड पर ऐप्लिकेशन क्रैश और आप डेटा NSJSONSerialization की कोशिश की। धन्यवाद

0

मुझे एक ही समस्या थी। मुझे पता चला कि त्रुटि उत्पन्न हुई थी क्योंकि URL जिसे मैं NSRLSession का उपयोग करके कुछ सामान डाउनलोड करने के लिए उपयोग कर रहा था, अमान्य हो गया था। ऑपरेशन को हटाने से मेरे लिए समस्या हल हो गई।

1
मेरे मामले में


मैं ".plist"
सिर्फ "के लिए जाने में" App परिवहन सुरक्षा सेटिंग्स "जोड़ने के लिए भूल गया था।plist "और" ऐप ट्रांसपोर्ट सिक्योरिटी सेटिंग्स "जोड़ें और फिर" मनमाने ढंग से लोड की अनुमति दें "को
यह मेरे लिए काम किया

संबंधित मुद्दे