मैं कार्यान्वयन में #pragma चिह्न का उपयोग कर समूहों में अपने तरीकों की व्यवस्था कर रहा हूं। लेकिन कभी-कभी, विधि कार्यान्वयन कोड कोड के नीचे दिखाई देता है जो इस विधि को कॉल करता है, और मुझे "इंस्टेंस विधि नहीं मिली" चेतावनियां मिल रही हैं। ऐसा तब होता है जब मैं निजी तरीकों का उपयोग कर रहा हूं। इसे कैसे ठीक करें?निजी विधि के लिए आगे की घोषणा कैसे करें?
उत्तर
सरलतम विधि एक गुमनाम श्रेणी का प्रयोग है। कुछ इस तरह अपने .m
फ़ाइल के शीर्ष में जोड़े, अपने @implementation
से पहले:
@interface MyClass()
- (void)myPrivateMethod;
@end
इस मामले में, आप इन विधियों को परिभाषित करने के लिए अपनी कार्यान्वयन फ़ाइल के अंदर एक कक्षा विस्तार का उपयोग करेंगे। इस तरह, आपकी 'सार्वजनिक' एपीआई अभी भी आपकी हेडर फ़ाइल में परिभाषित है, और आपकी कार्यान्वयन फ़ाइल में आपके छद्म-निजी तरीकों की परिभाषा शामिल है।
YourClass.m
@interface MyClass()
- (void)myPrivateMethod;
@end
@implementation MyClass
- (void)myPublicMethod
{
// This will not throw an error or warning
[self myPrivateMethod];
}
- (void)myPrivateMethod
{
// Do something
}
@end
नामित श्रेणी का उपयोग करने का नुकसान यह है कि आपको संबंधित '@ कार्यान्वयन MyClass (PrivateMethods)' की आवश्यकता है, अन्यथा आपको चेतावनी मिलेगी। बस एक अनाम श्रेणी का उपयोग करें। – DarkDust
निजी वर्ग एक्सटेंशन के लिए पसंदीदा वाक्यविन्यास '@interface MyClass() 'है। –
अपने Class.m कार्यान्वयन फ़ाइल में, तुम वहाँ में शुरुआत में एक अंतरफलक अनुभाग जोड़ सकते हैं और घोषणा कर सकते हैं निजी कार्यों:
@interface YourClassName (private)
-(void)aPrivateMethod:(NSString*)aParameter;
...
@end
@implementation YourClassName
...
@end
- 1. दोस्त घोषणा आगे की घोषणा
- 2. आगे की घोषणा के नुकसान?
- 3. ओकैमल आगे की घोषणा
- 4. सी ++: auto_ptr + आगे की घोषणा?
- 5. सी ++ कक्षा आगे की घोषणा की कमी?
- 6. आगे की घोषणा नहीं होगी
- 7. सी ++ वर्ग आगे घोषणा
- 8. आगे की घोषणा का उद्देश्य क्या है?
- 9. आगे की घोषणा क्यों आवश्यक है?
- 10. आगे की घोषणा साइड इफेक्ट के साथ टाइपपीफ?
- 11. विधि के लिए निजी Accessor
- 12. सी में एक संरचना की आगे की घोषणा?
- 13. आगे घोषणा और नेमस्पेस (C++)
- 14. सी ++ आगे घोषित घोषणा समस्या
- 15. सी ++ बढ़ावा आगे घोषणा प्रश्न
- 16. अपरिभाषित सी struct आगे घोषणा
- 17. असंतुष्ट आगे या बाहरी घोषणा
- 18. मित्र वर्ग अवधारणा के लिए आगे की घोषणा की आवश्यकता क्यों नहीं है?
- 19. सी ++ नाम स्थान उर्फ और आगे घोषणा
- 20. सी ++ नेस्टेड कक्षाएं आगे घोषणा त्रुटि
- 21. वर्ग प्रकार के वेक्टर के साथ आगे की घोषणा - अपूर्ण वर्ग प्रकार के सूचक को
- 22. निजी एपीआई "उपयोग" के लिए खुद की जांच करें?
- 23. उदाहरण संदेश के लिए "रिसीवर प्रकार 'कैलियर' क्या एक आगे की घोषणा है" यहां मतलब है?
- 24. एक विधि घोषणा
- 25. सार विधि घोषणा - आभासी?
- 26. असामान्य "स्थैतिक" विधि घोषणा
- 27. मैं आगे बढ़ने के लिए jquery की एनिमेट विधि का उपयोग कैसे करूं
- 28. अपूर्ण प्रकार की संरचना का अमान्य उपयोग, आगे की घोषणा के साथ भी
- 29. एक निजी विधि
- 30. विधि घोषणा पर जाएं
+1 तीन समान उत्तरों में से, आपका सबसे सही है। –