मेरे समझ है कि प्रोटोकॉल अन्य भाषाओं में इंटरफेस की तरह हैं - वे उम्मीद तरीकों की घोषणा - (। शायद यह भी प्रकार आपकी नहीं है), जबकि श्रेणियों आप मौजूदा प्रकार के लिए नए तरीकों को जोड़ने की अनुमतिआईफोन एसडीके कुछ प्रतिनिधियों के लिए प्रोटोकॉल की बजाय श्रेणियों का उपयोग क्यों करता है?
क्यों है, तो क्या आईफोन एसडीके कभी-कभी प्रतिनिधि प्रकार घोषित करने के लिए श्रेणियों का उपयोग करता है? आम तौर पर मैं उम्मीद करता हूं कि सभी प्रतिनिधियों को आईडी <MyDelegateProtocol> टाइप किया जाए लेकिन ऐसे कई उदाहरण हैं जहां यह मामला नहीं है।
उदाहरण के लिए, NSURLConnection देखें। इसके प्रतिनिधि को "आईडी" टाइप किया गया है और 'अनुबंध' को एनएसओब्जेक्ट (NSURLConnectionDelegate) पर एक श्रेणी के रूप में घोषित किया गया है।
तो: इन मामलों में श्रेणियों का उपयोग करने के लिए प्रेरणा क्या है?
यह मेरा अनुमान था लेकिन मुझे निश्चित रूप से पता नहीं था। धन्यवाद! –
प्रोटोकॉल में परिवर्तन को देखने की अपेक्षा जल्द ही आती है, हालांकि। अब वैकल्पिक प्रोटोकॉल विधियों की अनुमति है, उनका उपयोग करके कोड को थोड़ा सा साफ कर दिया जाएगा और अब बहुत सारी अनावश्यक श्रेणियों से छुटकारा पा जाएगा। (वे शांत हैं और सभी, लेकिन रनटाइम पर एनएसओब्जेक्ट पर तरीकों से निपटने के बजाय, मुझे लगता है कि एक प्रतिनिधि प्रोटोकॉल को लागू करने के लिए अवधारणात्मक रूप से और रनटाइम परिप्रेक्ष्य दोनों से अधिक क्लीनर है।) –