मेरे पास एक कक्षा है जो गतिशील रूप से कार्यान्वयन विधियों के लिए resolveInstanceMethod
का उपयोग करती है। जब मैं कोड के अन्य हिस्सों से गतिशील रूप से कार्यान्वित तरीकों को कॉल करता हूं, तो संकलक एक चेतावनी उत्सर्जित करता है कि ऑब्जेक्ट चयनकर्ता को प्रतिक्रिया नहीं दे सकता है। मैं चाहता हूं कि संकलक इस वर्ग के लिए ऐसी चेतावनियों को उत्सर्जित न करें, लेकिन जब मैं अन्य वर्गों पर एक अमान्य चयनकर्ता का आह्वान करता हूं तो मैं चेतावनियों को दबाना नहीं चाहता हूं। क्या यह संभव है?मैं संकलक को कैसे बता सकता हूं कि मेरी कक्षा गतिशील रूप से विधियों को हल करती है?
उत्तर
मान लिया जाये कि आप विधि हस्ताक्षर जो गतिशील संकलन समय पर समाधान हो जाएगा पता है, तुम उन्हें घोषणा कर सकते हैं एक अनौपचारिक श्रेणी में।
यदि आप हस्ताक्षर नहीं जानते हैं - यदि विधि नाम गतिशील भी हैं - तो आपको -performSelector:
(या एकल या डबल ऑब्जेक्ट तर्क प्रकार) का उपयोग करने की आवश्यकता होगी या आप शायद उपयोग करना चाहेंगे एनएसआईएनवोकेशन, जब तक प्रदर्शन एक प्रमुख चिंता नहीं है (यदि ऐसा है, तो ऐसे वैकल्पिक समाधान हैं जो काफी अधिक स्पष्ट रूप से हैं)।
उपयोग performSelector:
यह प्राप्तकर्ता के लिए सीधे एक संदेश भेजने के बराबर है, तथापि, यह आपको लगता है कि क्रम जब तक निर्धारित नहीं कर रहे हैं संदेश भेजने के लिए अनुमति देता है।
अपने तरीके से एक या दो तर्क ले, तो आप इस विधि की बहनों का उपयोग कर सकते हैं: – performSelector:withObject:
और – performSelector:withObject:withObject:
अपने तरीके से अधिक दो तर्क, या तर्कों के ऑब्जेक्ट प्रकार के नहीं हैं, तो, इस सवाल का जवाब है अनुकूल नहीं है। एक कार्यान्वयन प्रदान करने के लिए कोई ज़रूरत नहीं
@interface MyDynamicallyResolvingClass(MethodsThatWillResolveAtRuntime)
... declare the methods here ...
@end
:
- 1. गतिशील रूप से विधियों को कैसे जोड़ें
- 2. मैं वस्तु को गतिशील रूप से कैसे डाल सकता हूं?
- 3. रनटाइम पर गतिशील रूप से उदाहरण विधियों को कैसे बनाएँ?
- 4. मैं कैसे बता सकता हूं कि मेरी PHP स्क्रिप्ट का उपयोग करके कितनी मेमोरी/संसाधन है?
- 5. मैं gdb कैसे बता सकता हूं कि मेरी शून्य-लंबाई सरणी कितनी देर तक है?
- 6. गतिशील रूप से कक्षा विशेषताओं को बनाएँ
- 7. मैं क्लास विधि के लिए उपनाम विधि को गतिशील रूप से कैसे परिभाषित कर सकता हूं?
- 8. क्या कोई तरीका है कि मैं बता सकता हूं कि स्क्रीन को दबाया जा रहा है
- 9. गतिशील रूप से कक्षा
- 10. मैं कैसे बता सकता हूं कि मैं जेआरबी बनाम रुबी से चल रहा हूं?
- 11. मैं कैसे बता सकता हूं कि किसी उपयोगकर्ता ने मेरी वेबसाइट
- 12. PHP 5 में क्या मैं गतिशील रूप से कक्षा को चालू कर सकता हूं?
- 13. मैं कैसे सुनिश्चित कर सकता हूं कि संकलक मेरे प्रदर्शन परीक्षण को अनुकूलित नहीं करता है?
- 14. मैं एफ # में विधियों को कैसे छुपा सकता हूं?
- 15. लिनक्स में मैं कैसे बता सकता हूं कि मैं एक स्थिर या गतिशील पुस्तकालय से जुड़ा हूं?
- 16. कक्षा वस्तुओं को गतिशील रूप से कैसे बनाएं?
- 17. मैं कैसे बता सकता हूं कि कोई उदाहरण एक्शनस्क्रिप्ट 3.0
- 18. क्या मैं कक्षा को अनदेखा कर सकता हूं लेकिन बाहरी रूप से सील कर सकता हूं?
- 19. मैं हाइबरनेट वैलिडेटर के साथ संदेश पैरामीटर को गतिशील रूप से कैसे हल करूं?
- 20. मैं स्मॉलटाक में रनटाइम पर कक्षा में विधियों को कैसे जोड़ सकता हूं?
- 21. मैं कैसे बता सकता हूं कि Win32 एप्लिकेशन .NET रनटाइम
- 22. गतिशील रूप से कक्षा बनाना
- 23. मैं इस जावा संदर्भ क्लासलोडर समस्या को सुरक्षित रूप से कैसे हल कर सकता हूं?
- 24. मैं कैसे बता सकता हूं कि xslt में एक चर
- 25. खंड की कक्षा को गतिशील रूप से कैसे बदलें
- 26. मैं आरजीबी रंग को मूल रूप से नीला कैसे बता सकता हूं? सी #
- 27. कॉन्फ़िगरेशन को रीलोड करने के लिए मैं प्रोग्रामेटिक रूप से लॉगबैक कैसे बता सकता हूं
- 28. मैं कैसे बता सकता हूं कि कंप्यूटर को पुनरारंभ किया गया है या नहीं?
- 29. मैं डेल्फी को कैसे बता सकता हूं कि मैंने पहले ही अपवाद संभाला है?
- 30. मैं गतिशील रूप से फ़ंक्शन कैसे बना सकता हूं?
एक अनौपचारिक प्रोटोकॉल पूरी तरह से मेरी समस्या हल करता है। –