ऑब्जेक्टिव-सी में के अनुरूप है घोषित, यह एक विधि के लिए एक पैरामीटर के रूप में एक वर्ग पारित करने के लिए संभव है:एक ObjC पैरामीटर है कि एक कक्षा एक प्रोटोकॉल
- (void) methodThatTakesClass:(Class)theClass;
और यह एक उदाहरण है कि पारित करने के लिए संभव है एक पैरामीटर के रूप में एक प्रोटोकॉल के अनुरूप:
- (void) myConformInstance:(id <MyProtocol>)theObject;
यह संयुक्त कार्यक्षमता का उपयोग करना संभव है? एक विधि जो एक कक्षा लेती है जो एक निश्चित प्रोटोकॉल के अनुरूप है।
से [प्रोटोकॉल] (http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/ObjectiveC/Chapters/ocProtocols.html) : "क्लास ऑब्जेक्ट्स टाइप करने के लिए प्रोटोकॉल का उपयोग नहीं किया जा सकता है। केवल उदाहरणों को प्रोटोकॉल पर स्थिर रूप से टाइप किया जा सकता है, जैसे कि केवल क्लास को केवल क्लास में टाइप किया जा सकता है। (हालांकि, रनटाइम पर, दोनों कक्षाएं और उदाहरण एक अनुरूपता का जवाब देते हैंप्रोप्रोकॉल: संदेश।) " – albertamg
@albertamg अच्छा लगता है। हालांकि, कम से कम कुछ कंपाइलर्स इसे देते हैं। नियम हो सकता है क्योंकि आप प्रोटोकॉल के अनुरूप कक्षा का प्रतिनिधित्व करने वाली वस्तु को नहीं बदल सकते हैं। – ughoavgfhw