2011-09-11 8 views
22

मुझे ऐप्पल से कुछ नमूना कोड के बारे में एक बहुत ही बुनियादी सवाल है। .m फ़ाइल में, वर्ग घोषणाओं इस तरह दिखेगा:@interface और @implementation निर्देशों में कोष्ठक के अंदर पाठ का अर्थ क्या है?

@interface MyMovieViewController (OverlayView) 
[...] 
@end 

@interface MyMovieViewController (ViewController) 
[...] 
@end 

@implementation MyMovieViewController(ViewController) 
[...] 
@end 

@implementation MyMovieViewController (OverlayView) 
[...] 
@end 

@implementation MyMovieViewController 
[...] 
@end 

पूर्ण कोड here

ऐसा लगता है कि कोष्ठक ("ओवरले व्यू" और "व्यू कंट्रोलर") के अंदर की सामग्री कोड को तोड़ने और इसे और अधिक पठनीय बनाने में मदद करने के लिए है, लेकिन वास्तव में कोड के निष्पादन को प्रभावित नहीं करती है। लेकिन मैं कुछ महत्वपूर्ण गलतफहमी नहीं करना चाहता, इसलिए मैंने सोचा कि मैं सुनिश्चित करने के लिए जांच करूंगा।

क्या मेरी समझ सही है? धन्यवाद!

उत्तर

3

वे "श्रेणियां" हैं।

उन लोगों के साथ आप विधियों को जोड़कर किसी भी उद्देश्य-सी वर्ग का विस्तार कर सकते हैं, जो कक्षा की सभी वस्तुओं पर लागू होगा।

अधिक विस्तृत यहाँ लेख: http://macdevelopertips.com/objective-c/objective-c-categories.html

20

उन Categories कहा जाता है और आप अपनी कक्षाओं के लिए आगे कार्यक्षमता जोड़ने के लिए अनुमति देते हैं।

एक श्रेणी आपको मौजूदा कक्षा में विधियों को जोड़ने की अनुमति देती है-यहां तक ​​कि उसमें भी जिसके लिए आपके पास स्रोत नहीं है। श्रेणियां एक शक्तिशाली विशेषता है जो आपको बिना किसी वर्गीकरण के मौजूदा कक्षाओं की कार्यक्षमता का विस्तार करने की अनुमति देती है। श्रेणियों का उपयोग करके, आप कई फाइलों के बीच अपने स्वयं के वर्गों के कार्यान्वयन को भी वितरित कर सकते हैं। कक्षा एक्सटेंशन समान हैं, लेकिन प्राथमिक वर्ग @interface ब्लॉक के अलावा अन्य स्थानों में कक्षा के लिए अतिरिक्त आवश्यक एपीआई घोषित करने की अनुमति दें।

From the Apple docs on Categories and Extensions.

[मौजूदा वर्ग को अनुकूलित] पर
+0

एप्पल डॉक्स (https://developer.apple.com/library/ios/documentation/cocoa/conceptual/ProgrammingWithObjectiveC/CustomizingExistingClasses/CustomizingExistingClasses.html) – LopSae

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