जैसा कि लियोन ने अपनी टिप्पणी में कहा है, NSParameterAssert
पर टिप्पणी करना एक आदर्श समाधान नहीं है। AFNetworking
के लेखक द्वारा एक कारण के लिए एक दावा किया गया है। कोड को उत्तीर्ण नहीं करने वाला कोड अमान्य यूआरएल के कारण होने की संभावना है।
याद रखें कि NSURL
फैक्ट्री विधियों (यानी, + URLWithString:
और इसके भाई बहन) nil
वापस आते हैं जब वे एक अवैध URL स्ट्रिंग पास कर देते हैं। इस संदर्भ में, एक अवैध स्ट्रिंग एक स्ट्रिंग है जिसमें एक अवैध URL है।
हमारे दावे पर टिप्पणी करने के बजाय आपको क्या करना चाहिए, यह सुनिश्चित कर रहा है कि आप अपने AFHTTPClient
उदाहरण पर किसी भी अवैध URL को पास नहीं कर रहे हैं। This Stackoverflow answers एक उदाहरण देता है कि आप एक यूआरएल को कैसे वैध कर सकते हैं। यहाँ जवाब से एक नमूना है:
- (BOOL)validateUrl:(NSString *)candidate {
NSString *urlRegEx = @"(http|https)://((\\w)*|([0-9]*)|([-|_])*)+([\\.|/]((\\w)*|([0-9]*)|([-|_])*))+";
NSPredicate *urlTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", urlRegEx];
return [urlTest evaluateWithObject:candidate];
}
वैकल्पिक रूप से, आप का उपयोग कर NSString
के stringByAddingPercentEscapesUsingEncoding
विधि प्रतिशत पलायन जोड़ सकते हैं। इस तरह:
http://host.com/etc
^
स्रोत
2014-02-07 11:05:27
में अब भी इस समस्या से जूझ रहा है। क्या आपको अभी तक कोई समाधान मिला है? – Leon
मैंने लाइन 227: // एनएसपीएमिटरएएसएसर्ट (यूआरएल) पर टिप्पणी की; और यह काम करता है .. – arlg
यदि आप उस कोड को शामिल करते हैं जहां प्रोग्राम त्रुटि हो रहा है तो यह आपकी सहायता करेगा। लेकिन, आपको यह जांचना चाहिए कि क्या आप यूआरएल पैरामीटर में शून्य पास कर रहे हैं जैसे: '[[AFHTTPClient alloc] initWithBaseURL: nil] '। NSParameterAssert (url) HTTP क्लाइंट को शून्य URL के साथ प्रारंभ करने से रोकने के लिए है। –