2012-12-17 25 views
6

मैं समझने की कोशिश कर रहा हूं कि AFNetworking फ्रेमवर्क कैसे काम करता है। लेकिन मुझे कुछ समझ नहीं है जो मुझे समझ में नहीं आता है। मैंने AFHTTPclient का सबक्लास लिखा था। यह एक सिंगलटन वर्ग बनाया गया है और एक प्रारंभकर्ता कि निम्न करता है कहा:AFNetworking में रजिस्टर एचटीटीपीऑपरेशन क्लास वास्तव में क्या करता है?

- (id)initWithBaseURL:(NSURL *)url { 
    self = [super initWithBaseURL:url]; 
    if (self) { 
     //custom settings 
     [self registerHTTPOperationClass:[AFJSONRequestOperation class]]; // ??? 
    } 
    return self; 
} 

मैं एक ट्यूटोरियल मैं इंटरनेट पर पाए से इस कोड को मिल गया है, लेकिन मुझे समझ नहीं आता क्यों मैं अगर मैं JSONRequestOperation के लिए मेरी कक्षा पंजीकरण कराना होगा JSON डेटा वापस प्राप्त करना चाहते हैं? अगर मैं ऐसा कर रहा हूं तो हुड के नीचे क्या होता है? registerHTTPOperation कक्षा वास्तव में क्या करती है? पीएस: क्या इंटरनेट पर कहीं भी AFnetworking की गहराई से स्पष्टीकरण के उदाहरणों के साथ एक अच्छा दस्तावेज है?

+2

सभी दस्तावेज यहां हैं: http://afnetworking.github.com/AFNetworking/ – rckoenes

उत्तर

11

registerHTTPOperationClass:AFHTTPclient पर GetPath और postPath विधियों का उपयोग करते समय आपको अनुरोध को संभालने के लिए क्लास सेट का उपयोग करेगा।

आपके दिए गए उदाहरण में, HTTPRequestOperation AFJSONRequestOperation सेट किया गया है, जिसका अर्थ है कि सर्वर से सभी अनुरोध AFJSONRequestOperation के उदाहरण के साथ किए जाएंगे। AFJSONRequestOperationNSJSONSerialization कक्षा के साथ सर्वर से परिणाम का प्रयास और विश्लेषण करेगा।

यदि आप सर्वर के साथ सर्वर का जवाब देते हैं तो आपको HTTPRequestOperation को AFXMLRequestOperation पर उदाहरण के लिए सेट करना चाहिए।

+0

बहुत बढ़िया। धन्यवाद। यही वह स्पष्टीकरण है जिसे मैं ढूंढ रहा था। –

+0

अच्छा जवाब। + 1 –

+1

मेरे लिए यह केवल तभी काम करता है जब मैंने '[self setDefaultHeader: @ "स्वीकार करें" मान: @ "एप्लिकेशन/जेसन"];' भी सेट करें। मुझे डिफ़ॉल्ट हेडर सेट करना होगा और AFJSONRequestOperation को पंजीकृत क्यों करना होगा? – hashier

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