मुझे पता है कि सार्वजनिक उदाहरण चर को @ सार्वजनिक कीवर्ड के साथ परिभाषित करना संभव है। हालांकि, उद्देश्य-सी वाक्यविन्यास अन्य वर्ग 'चर का उपयोग करने की अनुमति नहीं देता है। @ सार्वजनिक Ivar से मुझे किन सुविधाओं की अपेक्षा की जानी चाहिए? या मैं अन्य वर्ग 'इवर्स तक कैसे पहुंचूं?उद्देश्य-सी में किसी अन्य वर्ग से @public इंस्टेंस चर का उपयोग कैसे करें?
उत्तर
उद्देश्य-सी, सी के सुपरसेट के रूप में, निश्चित रूप से वर्ग के कार्यान्वयन के बाहर से सार्वजनिक आवृत्ति चर के उपयोग की अनुमति देता है। अब, कारण आपने सुना होगा कि की अनुमति नहीं है यह है कि यह अत्यधिक निराश है। ज्यादातर मामलों में, यदि आप कार्यान्वयन संदर्भ के बाहर एक आवृत्ति चर का उपयोग करना चाहते हैं, तो आपको एक्सेसर्स और म्यूटेटर (गुण) का उपयोग करना चाहिए।
एक उद्देश्य-सी वर्ग वास्तव में isa
फ़ील्ड (जो यह एक वस्तु बनाता है) के साथ एक सादे-पुराने सी संरचना में उबाल जाता है, जहां सार्वजनिक क्षेत्र पहुंच योग्य होते हैं। चूंकि हम कक्षाओं के उदाहरणों से निपट रहे हैं, हम एक वस्तु (विशेष संरचना) के लिए एक सूचक काम कर रहे हैं। इस प्रकार, हम ->
का उपयोग करके सार्वजनिक क्षेत्रों तक पहुंचते हैं।
यहाँ एक उदाहरण है:
@interface SomebodyIsntEncapsulating : NSBadIdea {
@public
NSString *badIdea;
BOOL shouldntDoIt;
@protected
NSString *ahThatsBetterThankGod;
@private
NSString *sweetThanksNowEvenMySubclassesCantTouchMe;
}
अब, कुछ पूरी तरह से अलग संदर्भ में, हम हो सकता है:
SomebodyIsntEncapsulating *whatOh = [[SomebodyIsntEncapsulating alloc]
initWithDanger:kDangerLevelEpicBraceYourself];
whatOh->badIdea = [@"I'm a public field. Make sure to retain or copy me!" copy];
NSLog(@"Please! Write some accessors and mutators!: %@", whatOh->badIdea);
मुझे आशा है कि आप मदद की!
आप का उपयोग कर की तरह उस तक पहुँच सकते -> (सूचक द्वारा सदस्य) आप सामान्य रूप से एक सी संरचना के सदस्यों का उपयोग जैसे ऑपरेटर (ध्यान दें कि आप Obj सी में एक वस्तु के लिए एक सूचक है):
...
@public
int a;
...
myObject->a = 1;
आपको ऐसा करने के लिए एक्सेसर विधियों को लिखना होगा। ऑब्जेक्ट उन्मुख डिजाइन का तात्पर्य है कि किसी वर्ग को किसी अन्य वर्ग की वस्तुओं की आंतरिक संरचना की परवाह नहीं करनी चाहिए।
उस ने कहा, आईडी सिर्फ एक सूचक है, इसलिए आप obj-> ivar कर सकते हैं, बशर्ते आप जानते हों कि आप क्या कर रहे हैं और उचित एक्सेसर विधि लिखने का कोई तरीका नहीं है।
- 1. किसी अन्य वर्ग से एक चर का उपयोग
- 2. किसी अन्य वर्ग से वैश्विक स्थिर चर का उपयोग
- 3. किसी अन्य वर्ग से स्थिर स्थिर चर
- 4. किसी अन्य वर्ग से चर प्राप्त करने का उचित तरीका
- 5. किसी अन्य वर्ग से एक चर को कॉल करना PHP
- 6. जावा में किसी एक वर्ग में एक वर्ग के चर का उपयोग कैसे करें?
- 7. किसी अन्य वर्ग
- 8. getAssets(); किसी अन्य वर्ग से
- 9. किसी अन्य वर्ग
- 10. अभिभावक वर्ग से बाल वर्ग स्थिर चर का उपयोग करें?
- 11. विज़ुअल सी # - किसी अन्य वर्ग में बनाए गए ऑब्जेक्ट का एक्सेस इंस्टेंस
- 12. मैं किसी अन्य वर्ग से चर का उपयोग कैसे कर सकता हूं?
- 13. जावा: किसी अन्य वर्ग
- 14. किसी अन्य चर
- 15. जावा में किसी अन्य वर्ग में नेस्टेड कक्षा का उपयोग कैसे करें?
- 16. किसी अन्य वर्ग
- 17. मैं किसी अन्य वर्ग
- 18. सी में किसी अन्य फ़ाइल से स्थिर चर का उपयोग कैसे करें?
- 19. उद्देश्य-सी, किसी अन्य वर्ग
- 20. किसी अन्य वर्ग
- 21. PHP: किसी अन्य वर्ग
- 22. किसी अन्य स्थैतिक वर्ग
- 23. किसी अन्य वर्ग से एक्सेस सूची
- 24. सी ++ में स्थिर वर्ग चर का उपयोग?
- 25. लुआ - किसी अन्य स्क्रिप्ट से फ़ंक्शन का उपयोग कैसे करें
- 26. जावा में किसी अन्य वर्ग से कक्षा का विशिष्ट उदाहरण कैसे प्राप्त करें?
- 27. किसी अन्य फ़ाइल से #define का उपयोग कैसे करें?
- 28. किसी अन्य वर्ग के आधार पर कोड कैसे उत्पन्न करें?
- 29. किसी अन्य वर्ग से Winform घटकों तक कैसे पहुंचे?
- 30. किसी अन्य वर्ग से फॉर्म का नियंत्रण एक्सेस करना C#
विस्तृत उत्तर के लिए धन्यवाद। यह वही है जो मैं जानना चाहता हूं! – Eonil
हाहा जिसने मेरी सुबह बनाई। अच्छा उत्तर – Chris