उद्देश्य-सी में औपचारिक घोषणात्मक फैशन में निजी कक्षाओं या निजी आवृत्ति चर के बारे में कोई विचार नहीं है।
इसके बजाय, उद्देश्य-सी में दृश्यता पूरी तरह से नियंत्रित होती है जहां आप कुछ घोषित करते हैं। यदि यह एक हेडर फ़ाइल में है, तो इसे किसी और चीज द्वारा आयात किया जा सकता है। यदि इसे कार्यान्वयन फ़ाइल में घोषित किया गया है, तो यह (उचित रूप से) आयात नहीं किया जा सकता है और इसलिए, उस संकलन इकाई के लिए प्रभावी रूप से निजी है।
और "इसे" द्वारा, मेरा मतलब है कि बहुत कुछ भी घोषित किया जा सकता है; कक्षा, वैश्विक, आदि ...
आईई। यदि आप .m
फ़ाइल में कक्षा के लिए जोड़ी रखते हैं, तो वह वर्ग प्रभावी रूप से उस संकलन इकाई के लिए निजी है। बेशक, नामस्थानों के बिना, सुनिश्चित करें कि कक्षा विशिष्ट रूप से नामित है।
Foo.h:
@interface Foo: NSObject
... public interface
@end
Foo.m:
इस पर विचार करें
@interface __FooSupportClass: NSObject
... interface here ...
@end
@implementation __FooSupportClass
@end
@interface Foo()
@property(retain) __FooSupportClass *__fooSupport;
@end
@implementation Foo
@synthesize __fooSupport = fooSupport__;
... etc ...
@end
है कि आप एक निजी-दर-दृश्यता समर्थन वर्ग में ही उपलब्ध देता है आपके कार्यान्वयन के साथ दिखाई देने वाली आपकी कक्षा पर एक इंस्टेंस चर और सेटर/गेटर विधियों के साथ आपका कार्यान्वयन यूनिट या तो।
(ध्यान दें कि ऑब्जेक्टिव-सी "उदाहरण चर", नहीं "सदस्य चर"। वे समान हैं, लेकिन आप बेहतर होगा भाषा की शब्दावली का उपयोग कर देंगे। है)
'कक्षा' के बारे में क्या? – Dani
क्षमा करें, आप जो पूछ रहे हैं वह ओबज-सी में मौजूद नहीं है। –
@ केविन Ballard: यह Obj-C++ – Dani