2010-06-05 13 views

उत्तर

14

एक प्रतिनिधि एक ऐसी वस्तु है जो आमतौर पर किसी अन्य वस्तु में कुछ घटनाओं पर प्रतिक्रिया करता है और/या किसी अन्य वस्तु को कैसे प्रभावित करता है, इस पर प्रभाव डाल सकता है। वस्तुएं एक कार्य को पूरा करने के अधिक अच्छे के लिए मिलकर काम करती हैं। आम तौर पर एक प्रतिनिधि वस्तु को कई अन्य वस्तुओं द्वारा साझा किया जाएगा जिनके पास एक और विशिष्ट कार्य है। प्रतिनिधि स्वयं अधिक सार होगा और विभिन्न कार्यों के लिए बहुत पुन: प्रयोज्य होना चाहिए। ऑब्जेक्ट जिसमें प्रतिनिधि शामिल होता है आम तौर पर एक ट्रिगर घटना होने पर प्रतिनिधि को एक संदेश भेजता है, जिससे प्रतिनिधि को अपना निर्दिष्ट कार्य करने का मौका मिलता है।

अधिक दस्तावेज here है जो आपको कोको और कोको स्पर्श में प्रतिनिधि पैटर्न को समझने के लिए पढ़ना चाहिए, विशेष रूप से यूआईविंडो और यूआईवीव के बीच प्रतिनिधिमंडल का उपयोग कैसे किया जाता है। यह आईफोन आर्किटेक्चर में एक अभिन्न डिजाइन पैटर्न है और यदि आप एक साफ आवेदन तैयार करना चाहते हैं तो उसे महारत हासिल किया जाना चाहिए।

+2

लिंक मृत है – lindenrovio

+0

यहां एक और उपयोगी लिंक है - [लिंक] (https://developer.apple.com/library/ios/documentation/general/conceptual/CocoaEncyclopedia/DelegatesandDataSources/DelegatesandDataSources.html) –

3

Delegation is a pattern और शब्द कोको में इसका मतलब है।

UIViewController में एक प्रतिनिधि को लागू नहीं किया गया है। विभिन्न कार्यों को संभालने के लिए विभिन्न प्रकार के व्यू कंट्रोलर assign प्रतिनिधि हैं। सबसे अच्छे उदाहरणों में से एक (यदि हम आईफोन बात कर रहे हैं) UITableViewDelegate है, जिसे कुछ चीजों को करने के लिए कहा जाता है जब कुछ तालिका-संबंधी घटनाएं होती हैं।

5

प्रतिनिधियों का उपयोग वस्तुओं के कार्यों को उनके मालिक (या वास्तव में किसी भी वस्तु) को सौंपने के लिए किया जाता है। इसके लिए एक अच्छा कारण यह विरासत की बजाय संरचना का उपयोग करना आसान बनाता है। प्रतिनिधि किसी ऑब्जेक्ट का संदर्भ होते हैं जो निर्दिष्ट प्रोटोकॉल के अनुरूप होता है ताकि आप गारंटी दे सकें कि यह आवश्यक विधियों को लागू करेगा। एक अच्छा उदाहरण UIAplplicationDelegate है। ध्यान दें कि प्रतिनिधि पद्धतियां (प्रोटोकॉल से) क्रियाओं का उपयोग करती हैं जो एप्लिकेशनडिड, एप्लिकेशनशोल्ड, एप्लिकेशनविल इत्यादि। आम तौर पर प्रतिनिधि पद्धतियां या तो कुछ करने की अनुमति मांगती हैं (और इसे एक विधि में, बस एक बस संपत्ति के बजाय, विधि में करने का विकल्प चुनें , अधिक लचीलापन के लिए) या किसी घटना के प्रतिनिधि को सूचित करें जो घटित होगा या हुआ होगा।

0

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

1

एक प्रतिनिधि को कार्य पूरा करने के लिए कक्षा/संरचना के दो ऑब्जेक्ट्स को संचार/पास करने के लिए उपयोग किया जाता है। उदाहरण के लिए: firstVC (प्रेषक या प्रतिनिधि या सीईओ) पर विचार करें जो गोपनीय डेटा को दूसरे नेटवर्क (रिसीवर या प्रतिनिधि या सचिव) भेजता है। यह secondVC एक

protocol passDataDelegate { func passdata(data: String) } 

class secondVC : UIViewController, passDataDelegate { 
func passdata(data: String) { 
    print("CEO passed //(data)") 
    } 
} 

class firstVC : UIViewController { 
    var delegate : passDataDelegate? 
} 

के अनुरूप अब दोनों firstVC & secondVC

let sender = firstVC() 
let receiver = secondVC() 

की वस्तुओं को बनाने के बाद से, रिसीवर प्रोटोकॉल passDataDelegate के अनुरूप बनाकर किया जाता है। इसलिए, यहया passDataDelegate के रूप में टाइप कर रहा है क्योंकि यदि कोई वर्ग किसी प्रोटोकॉल के अनुरूप होता है तो उसके वर्ग के ऑब्जेक्ट में प्रोटोकॉल प्रकार हो सकता है।

इसलिए, sender.delegate = receiver

आवंटित अब, हम मुख्य कार्यकारी अधिकारी (प्रेषक) के रूप में

sender.delegate?.passdata("Confidential data") 

Output: CEO passed Confidential data 

अब सचिव (रिसीवर) ने अपने प्रतिनिधि के माध्यम से संपत्ति सचिव (रिसीवर) को डेटा पास कर सकते हैं कर सकते हैं कि डेटा का उपयोग कर सकते उसे और काम पूरा करने के लिए।

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