रन लूप स्रोत के रूप में रन लूप और सेटअप पर असिंक्रोनस अनुरोध निर्धारित किए जाते हैं, नेटवर्क से डेटा प्राप्त होने पर स्वचालित रूप से कोड को ट्रिगर करते हैं (किसी भी सॉकेट स्रोत के रूप में)।
NSThread
पर चल रहे सिंक्रोनस अनुरोध आने वाले डेटा की निगरानी करने के लिए थ्रेड को एकाधिकार करते हैं, जो आम तौर पर काफी अधिक है।
cancel
विधि का उपयोग करते हुए, आप हमेशा NSURLConnection
को रद्द कर सकते हैं, भले ही इसे अतुल्यकालिक रूप से निष्पादित किया गया हो।
मैं, नई एपीआई कि एक NSOperationQueue
(+sendAsynchronousRequest:queue:completionHandler:
) पर एक अतुल्यकालिक अनुरोध भेजने के लिए डाकू और dispatch_source_create
, या कुछ इसी तरह के तहत GCD का उपयोग करता है की अनुमति देता है का उपयोग करते हुए इतना है कि यह एक NSURLConnection
पर निर्धारित है जब रूप में एक ही तरह से व्यवहार शर्त रन लूप, एक अतिरिक्त धागे का उपयोग करने से परहेज करें (डब्ल्यूडब्ल्यूडीसी 12 वीडियो देखें जो बताता है कि थ्रेड क्यों बुरा हैं और उनका उपयोग कम किया जाना चाहिए), केवल अंतर यह है कि आप प्रतिनिधि का उपयोग करने के बजाय पूरा होने पर एक ब्लॉक का उपयोग करने की अनुमति देते हैं तंत्र।
कुछ साल पहले मैंने एक कक्षा बनाई जिसने NSURLConnection
एसिंक्रोनस कॉल और प्रतिनिधि प्रबंधन को एक अच्छा ब्लॉक एपीआई में देखा (मेरे जीथब पर OHURLLoader देखें) जो इसे उपयोग करना आसान बनाता है (एक नज़र डालने के लिए स्वतंत्र महसूस करें)। मैं नई एपीआई शर्त लगाता हूं जो NSOperationQueue
एस का उपयोग उसी सिद्धांत का उपयोग करता है, फिर भी रनलोप पर एसिंक्रोनस अनुरोध कर रहा है लेकिन आपको प्रतिनिधि को लागू करने के बजाय ब्लॉक का उपयोग करने की अनुमति देता है।
धन्यवाद, आपके पास एक बिंदु है :) – msk
यह समझ में आता है। नया ब्लॉक-आधारित दृष्टिकोण क्या है * विशेष रूप से कृपया? कोड की तलाश नहीं है, बस Google से क्या पूछना है ताकि मैं कुछ दस्तावेज़ों को ग्रोक कर सकूं। – Madbreaks
@ मैडब्रेक्स यह 'NSURLConnection + sendAsynchronousRequest है: कतार: समापन हैंडलर: '। – Tommy