कोको लिखते समय और एक क्लास विधि को कार्यान्वित करते समय जो एक प्रतिनिधि और एक या अधिक चयनकर्ताओं को अपने कॉलबैक के लिए उपयोग करने के लिए स्वीकार करता है, क्या शब्दावली "प्रतिनिधि" और "चयनकर्ता" से "लक्ष्य" और "कार्रवाई" में बदल जाती है? अधिक बिंदु पर, "प्रतिनिधि" केवल तब तक सीमित है जब मेरी कक्षा कहलाती है, लेकिन जब मेरी कक्षा कॉलिंग पर कॉल कर रही है?क्या प्रतिनिधि/चयनकर्ता और लक्ष्य/कार्रवाई के बीच कोई अंतर है?
उत्तर
प्रतिनिधि आमतौर पर चयनकर्ताओं के बजाय Protocols का उपयोग करके लागू किए जाते हैं। यह कक्षाओं में संचार करने का एक और औपचारिक तरीका है, और अधिकतर उपयोगी है जब एक से अधिक विधि की आवश्यकता हो सकती है।
लक्ष्य/कार्रवाई आम तौर पर एक "घटना की तरह" स्थिति के अनुरूप करने के लिए उपयोग किया जाता है, इस तरह के एक क्लिक करें, एक टाइमर फायरिंग, आदि के रूप
NilObject के जवाब पर विस्तार से बता दें प्रतिनिधियों प्रोटोकॉल के माध्यम से एक श्रृंखला के साथ लागू किया जाता है 'मानकीकृत' तरीकों का। यदि आपके पास एक ही प्रतिनिधि को साझा करने वाले एक ही वर्ग के कई ऑब्जेक्ट्स हैं, तो आप प्रेषक के बीच अंतर करने में असमर्थ होंगे। इसलिए आप देखते हैं - (शून्य) प्रतिनिधि कॉलबैक: (आईडी) प्रेषक प्रेषक का सूचक आपको इस संघ को बनाने की अनुमति देता है।
इस तुलना को प्रेषक के संदर्भ में एक संपत्ति या वैश्विक चर के रूप में आवश्यक होगा, यह आपके ऑब्जेक्ट को मैन्युअल रूप से जारी कर रहा है, क्योंकि यह ऑब्जेक्ट गुणों को रिलीज़ करने से पहले शून्य पर सेट कर सकता है (कचरा पॉइंटर्स को रोकने के लिए)।
वैकल्पिक रूप से आप कॉलबैक के लिए अपनी विधि में पास करने के लिए चयनकर्ता विधि का उपयोग कर सकते हैं, यह तकनीक अच्छी है क्योंकि आपको: (आईडी) प्रेषक के साथ तुलना के संदर्भ की आवश्यकता नहीं है और आपके पास एक विधि कॉलबैक हो सकता है प्रत्येक वस्तु जिसे आप प्रारंभ करते हैं। फ्लिप पक्ष पर संदर्भ की कमी का अर्थ है कि यदि आप इस वस्तु को छोड़ देते हैं तो आप गुणों को शून्य में सेट करने में असमर्थ होंगे।
मुझे लगता है कि डिजाइन स्तर पर एक अंतर है।
चलिए एक घटक लेते हैं जो कुछ सामान करने के लिए विशिष्ट है। Delegation
और targetAction
दोनों हमारे घटक और उस वस्तु के बीच संचार (कुछ प्रकार) संचार की सुविधा प्रदान करेंगे जो इसका उपभोग करता है।
आमतौर पर, संचार का किस प्रकार वांछित है यह निर्धारित करता है कि Target Action
या Delegation
का उपयोग करना है या नहीं।
1. संचार क्या हो रहा है?
लक्ष्य कार्रवाई जब संचार नियंत्रण (घटनाओं, राज्य, आदि)
प्रतिनिधिमंडल और अधिक लचीला है और व्यापक अनुप्रयोगों के लिए सीमित है और अधिक उपयुक्त है। तो मैं 2 ऑब्जेक्ट्स के बीच डेटा भेजने और प्राप्त करने के लिए प्रतिनिधिमंडल का उपयोग कर सकता हूं।
2. कैसे
अब तक मैं लक्ष्य कार्रवाई देखा है करने के लिए ज्यादातर प्रकट 1-वे संचार
प्रतिनिधिमंडल के साथ मैं अपने आप को तरीकों होने से 2-वे संचार किया है कि मूल्य वापसी।
Target - the object which is going to respond for your action. Action - the method which is triggered by your action Delegates - Majorly used for callback mechanism, implemented using "@protocols". Selector - also can be used as callback method:
उदाहरण के लिए:
SEL mySelector = @selector(myTimerCallback:);
[NSTimer scheduledTimerWithTimeInterval:30.0 target:obj selector:mySelector userInfo:nil repeats:YES];
- 1. क्या कोई इकाई और वस्तु के बीच कोई अंतर है?
- 2. क्या (स्थानीय), '।' के बीच कोई अंतर है और लोकहोस्ट?
- 3. क्या MsgBox और MessageBox के बीच कोई अंतर है। दिखाओ?
- 4. क्या BigDecimal ("0") और BigDecimal.ZERO के बीच कोई अंतर है?
- 5. क्या नियंत्रण और विजेट के बीच कोई अंतर है?
- 6. क्या $ (e.currentTarget) और $ (यह) के बीच कोई अंतर है?
- 7. क्या ऑपरेटर और डिफ़ाइनप्रोपर्टी के बीच कोई प्रभावी अंतर है?
- 8. क्या window.localStorage और localStorage के बीच कोई अंतर है?
- 9. क्या System.Windows.Clipboard और System.Windows.Forms.Clipboard के बीच कोई अंतर है?
- 10. क्या GUID और UUID के बीच कोई अंतर है?
- 11. क्या log4net.Config.BasicConfigurator.Configure() और log4net.Config.XmlConfigurator.Configure() के बीच कोई अंतर है?
- 12. क्या सीजीआरईटी और एनएसआरईक्ट के बीच कोई अंतर है?
- 13. क्या डब्लूएसजीआई और एफसीजीआई के बीच कोई गति अंतर है?
- 14. क्या ब्लब्स और जुड़े घटकों के बीच कोई अंतर है?
- 15. क्या "अतिरिक्त" और "बिटवाईव अतिरिक्त" के बीच कोई अंतर है?
- 16. क्या on_exit() और atexit() फ़ंक्शंस के बीच कोई अंतर है?
- 17. क्या एमआईएमई और सामग्री प्रकार के बीच कोई अंतर है?
- 18. क्या आरपीसी और आईपीसी के बीच कोई अंतर है?
- 19. क्या 'ListView.invalidateViews()' और 'Adapter.notifyDataSetChanged()' के बीच कोई अंतर है?
- 20. क्या डीबग और रिलीज के बीच कोई (प्रदर्शन) अंतर है?
- 21. क्या SqlConnection.CreateCommand और नया SqlCommand के बीच कोई अंतर है?
- 22. $ और $$ के बीच क्या अंतर है?
- 23. "$^एन" और "$ +" के बीच क्या अंतर है?
- 24. भिन्नता और '-' के बीच क्या अंतर है?
- 25. # {} $ {} और% {} के बीच क्या अंतर है?
- 26. [अपरिभाषित] और [,] के बीच क्या अंतर है?
- 27. के बीच क्या अंतर है:। और: आर !?
- 28. अंतर और कहां के बीच क्या अंतर है?
- 29. के बीच क्या अंतर है?
- 30. संरक्षित आंतरिक और आंतरिक संरक्षित के बीच कोई अंतर है?
मैं अब इसे पाने के - मैं इसे गलत कर रहा हूँ। यही कारण है कि यह मुझे भ्रमित कर रहा है :) सहायता के साथ यह पृष्ठ भी था, "प्रोटोकॉल में विधिनाम नहीं" त्रुटि को कवर करने में त्रुटि मैं लगभग तुरंत चला गया: http://www.mobileorchard.com/idprotocol-retainrelease-and -protocol-भाग / –