मुझे पता है कि कार्यों को गतिशील रूप से कहा जा सकता है, लेकिन क्या स्थिर रूप से निर्धारित करने का कोई तरीका है (और ओबीजेसी वस्तुओं के तरीकों) को नहीं कहा जा रहा है?क्या Xcode4 में अप्रयुक्त कार्यों को निर्धारित करने का कोई तरीका है?
उत्तर
मुझे यकीन नहीं है कि किसी के लिए इस तरह के स्थैतिक विश्लेषण उपकरण को करने का प्रयास करने के लिए यह एक समझदार बात है - यह बहुत जटिल होगा, और आपको शायद यह पता चलेगा कि यह केवल उन कार्यों के सामान्य उदाहरण पाएगा जो नहीं कहा जाता - उदाहरण के लिए आपके वर्गों में बनाए गए कार्यों, और आपके पास उनके लिए कोई कॉल नहीं है। कोको के साथ बातचीत करने वाली सभी चीजें ... अच्छी तरह से समस्या यह है कि वे विभिन्न परिस्थितियों में 'शायद' कहलाए जा सकते हैं।
किसी भी मामले में, आपको वास्तव में क्या करना चाहिए रनटाइम कोड कवरेज है - क्योंकि यह आपको दिखाएगा (परीक्षण के एक सभ्य सूट के साथ) वास्तव में किस कोड का उपयोग किया जा रहा है, जो एक छोटा सबसेट होगा।
objc_cover संभावित रूप से अप्रयुक्त उद्देश्य-सी विधियों को ढूंढने में आपकी सहायता करेगा।
की अपनी सूची में -Wunused-function
जोड़ें।
यह संदर्भ द्वारा संदर्भित कार्यों को भी संदर्भित करता है (सामान्य उपयोग के लिए आदर्श)। फिर इष्टतम कवरेज के लिए अपने कार्यक्रम को जीसीसी और क्लैंग के साथ संकलित करें।
ध्यान दें कि यह ध्वज सभी मामलों (जैसे निर्यात किए गए कार्यों) को कवर नहीं करता है, और यह मुख्य रूप से उन कार्यों पर केंद्रित है जिनमें आंतरिक संबंध है। strip
और nm
का उपयोग करके भिन्नता बाहरी प्रतीकों को अलग करने में मदद कर सकती है - मुझे इस सटीक प्रक्रिया के लिए एक अच्छा टूल नहीं पता है।
यदि आप अप्रयुक्त objc विधियों को ढूंढना चाहते हैं, तो आपको अपना प्रश्न दोबारा जवाब देना चाहिए।
- 1. क्या वेबसाइट में अप्रयुक्त सीएसएस खोजने का कोई तरीका है?
- 2. क्या पाइथन कक्षा में सभी कार्यों को लूप करने और निष्पादित करने का कोई तरीका है?
- 3. अप्रयुक्त आरईएसटी कार्यों को छोड़ना बुरा है?
- 4. अप्रयुक्त कार्यों के बारे में चेतावनी देने का कोई तरीका है?
- 5. अंडरस्कोर.जेएस कार्यों को चेन करने का पसंदीदा तरीका क्या है?
- 6. अप्रयुक्त जावास्क्रिप्ट कार्यों को खोजें?
- 7. .cpp में, क्या उसके सभी कार्यों को स्वत: कार्यान्वित करने का कोई तरीका है। एच?
- 8. क्या कोई क्लाइंट वेब पेज पर खर्च करने की अवधि निर्धारित करने का कोई तरीका है
- 9. क्या $ का मूल्य निर्धारित करने का कोई तरीका है? रूबी में एक नकली में?
- 10. क्या सी # 4.0 में इंटरफ़ेस/प्रतिनिधि के भिन्नता को निर्धारित करने का कोई तरीका है?
- 11. क्या विम-स्क्रिप्ट में दो कस्टम, पूर्ण कार्यों का उपयोग करने का कोई तरीका है?
- 12. क्या एचएटीओएम माइक्रोफॉर्मेट को सत्यापित करने का कोई तरीका है?
- 13. क्या एमवीसी में अप्रयुक्त विचारों को खोजने का कोई स्वचालित तरीका है?
- 14. क्या एएनटी में ग्रिड उत्पन्न करने का कोई तरीका है?
- 15. क्या अप्रयुक्त या पुरानी FxCop संदेश दमन की पहचान करने का कोई तरीका है?
- 16. आईफोन: क्या अप्रयुक्त संसाधनों की पहचान करने का कोई स्वचालित तरीका है?
- 17. क्या डेल्फी में अप्रयुक्त ईवेंट हैंडलर का पता लगाने का कोई तरीका है?
- 18. क्या ओपनिड को लागू करने का कोई आसान तरीका है?
- 19. क्या सी संरचना को डंप करने का कोई तरीका है?
- 20. क्या ऐसा करने का कोई तरीका है?
- 21. क्या कोई .NET थ्रेड समाप्त होने पर निर्धारित करने का कोई तरीका है?
- 22. क्या टर्मिनल के पृष्ठभूमि रंग को निर्धारित करने का कोई तरीका है?
- 23. क्या आईफोन सिम्युलेटर में उपलब्ध स्मृति की मात्रा निर्धारित करने का कोई तरीका है?
- 24. क्या एल्मा में प्रोग्राम नाम निर्धारित करने का कोई तरीका है?
- 25. एंडियननेस निर्धारित करने का सबसे पाइथोनिक तरीका क्या है?
- 26. क्या asp.net में CultureInfo से टेक्स्ट दिशा निर्धारित करने का कोई तरीका है?
- 27. क्या लिनक्स में मुफ्त वीडियो रैम की मात्रा निर्धारित करने का कोई तरीका है?
- 28. क्या maven pom.xml से अप्रयुक्त निर्भरताओं को निकालने का कोई आसान तरीका है?
- 29. क्या configManager.AppSettings को ओवरराइड करने का कोई तरीका है?
- 30. क्या gif फ़ाइलों को सिंक करने का कोई तरीका है?
सहमत हुए। यह एक कठिन समस्या है, खासकर जब आप फंक्शन पॉइंटर्स, कॉलबैक और भारी सशर्त कोड शुरू करना शुरू करते हैं। रोक समस्या की तरह लगता है। – Luke
@ ल्यूक - सहमत है, सवाल दिलचस्प है - इसके बारे में सोचने से मुझे पता चला कि यह कितना मुश्किल होगा। चयनकर्ताओं और संदेश अग्रेषण के उपयोग के साथ भी। गतिशील कवरेज के लिए कोड को इंस्ट्रूमेंट करना - तुच्छ नहीं, लेकिन यह देखने में कहीं आसान है कि आप इसे कैसे कर सकते हैं। – iandotkelly
@Iandotkelly: दिलचस्प विचार, इसे गतिशील रूप से कर रहा है। छोटे हैक जो दिमाग में आता है: कुछ समय के लिए एक प्रोफाइलर के माध्यम से अपना कोड चलाएं, सभी फ़ंक्शन नाम निकालें, और एक टैग डेटाबेस के साथ तुलना करें। इससे आपको कुछ विचार मिलना चाहिए, जो कार्यों को शायद ही कभी कहा जाता है या कभी भी नहीं। यह निश्चित रूप से stochastically है और किसी भी तरह से 100% सटीक नहीं है, लेकिन वास्तव में बुलाए गए कार्यों की जांच को समाप्त करता है। – Arne