खोज…


टिप्पणियों

प्रोटोकॉल और प्रतिनिधि दो संबंधित लेकिन अलग अवधारणा हैं:

एक प्रोटोकॉल एक इंटरफ़ेस है जो एक वर्ग के अनुरूप हो सकता है, जिसका अर्थ है कि वर्ग सूचीबद्ध तरीकों को लागू करता है।

एक प्रतिनिधि आमतौर पर एक अनाम वस्तु है जो एक प्रोटोकॉल के अनुरूप है।

डेलिगेट नामक प्रतिनिधि का आवेदन एक डिजाइन पैटर्न है।

एक छोर पर हमारे पास इनहेरिटेंस की अवधारणा है जो उपवर्ग और उसके सुपरक्लास के बीच एक तंग युग्मन बनाता है जबकि डेलिगेशन डिजाइन पैटर्न इस तंग युग्मन से बचने का एक विकल्प प्रदान करता है, जिसके उपयोग से हम अनाम डेलिगेट ऑब्जेक्ट्स के आधार पर बहुत अधिक शिथिल संबंध बना सकते हैं।

प्रोटोकॉल और प्रत्यायोजन तंत्र का कार्यान्वयन।

मान लीजिए कि आपके पास ViewA और ViewB दो विचार हैं

के कहने ViewB अंदर बनाई गई है ViewA , तो ViewA को संदेश भेज सकते हैं ViewB's उदाहरण हैं, लेकिन होने के लिए रिवर्स के लिए हम प्रतिनिधिमंडल लागू करने की आवश्यकता (प्रतिनिधि का उपयोग करते हुए इतना है कि ViewB's उदाहरण के लिए संदेश भेज सकते हैं ViewA )

प्रतिनिधिमंडल को लागू करने के लिए इन चरणों का पालन करें

  1. ViewB प्रोटोकॉल बनाएँ

     @protocol ViewBDelegate 
    
    -(void) exampleDelegateMethod;
    
     @end
    
  2. भेजने वाले वर्ग में प्रतिनिधि को घोषित करें

     @interface ViewB : UIView
     @property (nonatomic, weak) id< ViewBDelegate > delegate;
     @end
    
  3. क्लास व्यूए में प्रोटोकॉल को अपनाएं

    @interfac ViewA: UIView < ViewBDelegate >

  4. प्रतिनिधि को सेट करें

    -(void) anyFunction   
    {
        // create Class ViewB's instance and set the delegate
        [viewB setDelegate:self];
    }
    
  5. कक्षा ViewA में प्रतिनिधि पद्धति को लागू करें

    -(void) exampleDelegateMethod
    {
        // will be called by Class ViewB's instance
    }
    
  6. प्रतिनिधि विधि को कॉल करने के लिए क्लास ViewB में विधि का उपयोग करें

    -(void) callDelegateMethod
    {
        [delegate exampleDelegateMethod];
        //assuming the delegate is assigned otherwise error
    }
    


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow