मैंने प्रलेखन पढ़ा है लेकिन मैं अभी भी उलझन में हूं। क्या कोई कृपया बता सकता है कि प्रोटोकॉल क्या है? (आप कोड उदाहरण दे सकते हैं लेकिन मैं वास्तव में एक स्पष्टीकरण की तलाश में हूं)प्रोटोकॉल क्या है?
उत्तर
Here's a great article on it। प्रभावी रूप से, उद्देश्य-सी में एक प्रोटोकॉल जावा में एक इंटरफ़ेस या सी ++ में शुद्ध वर्चुअल क्लास के समान है (हालांकि शुद्ध वर्चुअल क्लास में डेटा सदस्य नहीं हो सकते हैं ...)। यह मूल रूप से एक गारंटी है कि एक विशिष्ट वर्ग जानता है कि दिए गए तरीकों (संदेशों) के किसी भी सेट का जवाब कैसे दिया जाए।
संपादित करें मूल लेख गायब हो गया है इसलिए मैंने इसे एक अलग ट्यूटोरियल के साथ बदल दिया है।
ए प्रोटोकॉल एक वर्ग लागू होने वाली आवश्यक और/या वैकल्पिक विधियों की एक सूची को परिभाषित करने का माध्यम है। यदि कोई वर्ग प्रोटोकॉल को गोद लेता है, तो इसे प्रोटोकॉल में सभी आवश्यक विधियों को लागू करना होगा। कोको उद्देश्य-सी संदेशों के माध्यम से इंटरप्रोसेस संचार का समर्थन करने के लिए प्रोटोकॉल का उपयोग करता है। इसके अलावा, चूंकि उद्देश्य-सी एकाधिक विरासत का समर्थन नहीं करता है, इसलिए आप प्रोटोकॉल के साथ समान कार्यक्षमता प्राप्त कर सकते हैं, क्योंकि एक वर्ग एक से अधिक प्रोटोकॉल को अपना सकता है।
प्रोटोकॉल का एक अच्छा उदाहरण एनएससीओडी है, जिसमें दो आवश्यक विधियां हैं जिन्हें कक्षा को लागू करना चाहिए। इस प्रोटोकॉल का उपयोग कक्षाओं को एन्कोड और डीकोड करने में सक्षम करने के लिए किया जाता है, यानी स्थायी भंडारण के लिए वस्तुओं को संग्रहित करना।
@protocol NSCoding
-(void)encodeWithCoder:(NSCoder *)aCoder;
-(id)initWithCoder:(NSCoder *)aDecoder;
@end
एक प्रोटोकॉल को अपनाने के लिए,> < में प्रोटोकॉल के नाम पर लगा
नीचे@interface SomeClass : NSObject <NSCoding>
{
some variables
}
कैसे एक प्रोटोकॉल को परिभाषित करने की तरह?
हम दोनों प्रोटोकॉल के भीतर एक वैकल्पिक तरीकों की आवश्यकता बना सकते हैं।
@protocol Hello
- (BOOL)send:(id)data;
- (id)received;
@optional
- (int)progress;
@end
ऊपर दिए उदाहरण में प्रोटोकॉल का उपयोग करने के लिए, इंटरफ़ेस में प्रोटोकॉल घोषित करने और वर्ग कार्यान्वयन के लिए आवश्यक तरीकों बारे में:
क्या इस प्रकार एक प्रोटोकॉल 'हैलो' नाम की एक definion है// इंटरफ़ेस @interface AnotherClass: NSObject
{
some declaration
}
// कार्यान्वयन @implementation AnotherClass
- (BOOL)send:(id)data
{
some declaration
}
- (id)received
{
some code
}
// वैकल्पिक विधि
- (int)progress
{
some code
}
@end
मुझे आशा है कि यह आप प्रोटोकॉल जानने के लिए मदद करता है।
- 1. एसएमपीपी प्रोटोकॉल क्या है?
- 2. uwsgi प्रोटोकॉल और wsgi प्रोटोकॉल के बीच क्या अंतर है?
- 3. क्या यूट्यूब प्रोटोकॉल HTTP प्रोटोकॉल से तेज है?
- 4. निम्नलिखित क्लोजर प्रोटोकॉल में क्या गलत है?
- 5. क्या एक यूआरआई प्रोटोकॉल शामिल करता है?
- 6. प्रोटोकॉल
- 7. स्टेटलेस प्रोटोकॉल और स्टेटफुल प्रोटोकॉल
- 8. क्या एलडीएपी प्रोटोकॉल एक डीएन
- 9. Google के प्रोटोकॉल बफर में, अपवादों के लिए उपयुक्त प्रोटोकॉल फ़ाइल/मॉडल क्या है?
- 10. प्रोटोकॉल 'net.tcp' समर्थित नहीं है
- 11. प्रोटोकॉल बफर
- 12. फ़ाइल प्रोटोकॉल
- 13. क्या AJAX एक HTTP प्रोटोकॉल विचलन धक्का है?
- 14. क्या ओबीजेसी कक्षा वस्तु प्रोटोकॉल के अनुरूप हो सकती है?
- 15. क्या जावा प्रोटोकॉल बफर संदेश का नकल करना संभव है?
- 16. क्या कोई पीटीपी (प्रेसिजन टाइम प्रोटोकॉल | आईईईई 1588) पुस्तकालय है?
- 17. वित्तीय संस्थानों के लिए FIX प्रोटोकॉल क्या है?
- 18. जावास्क्रिप्ट छद्म प्रोटोकॉल वास्तव में क्या करता है?
- 19. net.tcp और TCP प्रोटोकॉल के बीच क्या अंतर है?
- 20. पोर्ट नंबर और प्रोटोकॉल नंबर के बीच क्या अंतर है?
- 21. क्या बाहरी इंटरफेस फ़ाइल पर काम करता है: प्रोटोकॉल?
- 22. विश्वसनीय मल्टीकास्ट के लिए सबसे कुशल प्रोटोकॉल क्या है?
- 23. क्या JSON और प्रोटोकॉल बफ़र्स के बीच मानक मैपिंग है?
- 24. आरईएसटी और HTTP प्रोटोकॉल के बीच क्या अंतर है?
- 25. एसएसएच प्रोटोकॉल चैनल डेटा विंडो आकार का उद्देश्य क्या है?
- 26. क्या जेडीबीसी ड्राइवर को साझा मेमोरी प्रोटोकॉल
- 27. स्थान है। प्रोटोकॉल कभी अमान्य है?
- 28. ब्लूटूथ प्रोटोकॉल?
- 29. गलत प्रोटोकॉल
- 30. UIActivityItemSource प्रोटोकॉल
यह गारंटी है जब तक प्रोटोकॉल वैकल्पिक तरीकों को परिभाषित नहीं करता है। उस स्थिति में आपको अभी भी जांचना होगा कि विधि लागू की गई है या नहीं। –
प्रोटोकॉल में गुण भी हो सकते हैं। –
बस मॉडरेटर को इंगित करना चाहते हैं कि लिंक मर चुका है। – Alix