2013-02-08 18 views
5

मैं वास्तव में की तरह करने के लिए "/ * ब्लॉक टिप्पणी के भीतर" अस्थायी सक्षम हैं और उन्हें इस तरह से टिप्पणी करके कोड भागों को निष्क्रिय:XCode चेतावनी:

/* 
some code 
/**/ 

(ध्यान रहे

/**/

बजाय

*/

अंत में

)

हालांकि, XCode मुझे चेतावनी दे रहा रखता है:

/* within block comment 

वहाँ किसी भी तरह से करने के लिए "कस्टम अक्षम" विशिष्ट चेतावनी है?

क्यों? मैं आपको बताउंगा क्यों: क्योंकि मैं आसानी से इसे केवल एक चरित्र के साथ ले जा सकता हूं, "*/इन और आउट लेने के लिए ब्लॉक को स्क्रॉल किए बिना।

+0

उम्म ... बस केवल '* /' का उपयोग करें? – Doorknob

उत्तर

5

मैं करने के लिए एक बहुत अच्छा विकल्प मिल गया:

/*  
some code 
/**/ 

आप सिर्फ इस प्रकार का उपयोग कर सकते हैं:

/* 
some code 
//*/ 

किसी भी Xcode बिना चेतावनी के एक ही लक्ष्य को प्राप्त करने के लिए!

+0

"बहुत अच्छा"? बिल्कुल नहीं ... – trojanfoe

+0

@trojanfoe आप विकास के दौरान उपयोग की जाने वाली टिप्पणियों के प्रत्येक ब्लॉक के लिए झंडे को परिभाषित नहीं करना चाहते हैं, आपका उत्तर उत्पादन संस्करण के लिए अच्छा है, यह एक विकास प्रक्रिया से संबंधित विशेष प्रश्नों का उत्तर देता है। –

+1

@ ए-लाइव ये टिप्पणियां नहीं हैं; यह टिप्पणी-आउट कोड। झंडे का उपयोग करना (यहां तक ​​कि '0' जैसे) भी यह स्पष्ट करता है कि यह टिप्पणी के बजाय कोड-आउट कोड है एक टिप्पणी। यह समाधान त्रुटि प्रवण है क्योंकि आपको याद रखना होगा कि '// */'का उपयोग टिप्पणी को समाप्त करने के लिए किया जाता है। संक्षेप में यह बुरा है और बिल्कुल" अच्छा "नहीं, अकेले" बहुत अच्छा "दें। – trojanfoe

8

जब मैं अस्थायी रूप से एक ब्लॉक को हटाना चाहता हूं कोड मैं का उपयोग करें:

#if 0 
somecode(); 
#endif 

कौन इस मुद्दे से बचा जाता है और आसान है बाद में पहचानना

मैं बाद में अस्थायी रूप से उस कोड को फिर से सक्षम करने के लिए चाहते हैं, तो मैं बस फ्लिप 01 रहे हैं:।

#if 1 
somecode(); 
#endif 

हालांकि इस पर नियंत्रण के लिए अधिक दिखाई, और आसान होने के लिए सक्षम/अक्षम जरूरतों है, तो मैं एक निरंतर बजाय स्रोत फ़ाइल के शीर्ष पर परिभाषित का उपयोग करें:

#define SOME_FANCY_FEATURE 1 

... 

#if SOME_FANCY_FEATURE 
somecode(); 
#endif // SOME_FANCY_FEATURE 
+0

मेरे प्रश्न का उत्तर नहीं देता है, लेकिन एक अच्छा विकल्प हालांकि। एक वोट वोट के लायक है। –

+0

@ user1423640 मुझे डर है कि आपके प्रश्न का कोई जवाब नहीं है, केवल विकल्प। आप अपने कोड में सिंटैक्स त्रुटियों को पेश कर रहे हैं जो आप कर रहे हैं। – trojanfoe

+0

@trojanfoe आपका समाधान SEEMS प्रभावी है, लेकिन वास्तव में बहुत खराब है। जब आपके पास कोड के कई घोंसले वाले हिस्सों पर टिप्पणी की जा रही है तो यह मुश्किल हो जाता है (मुझे यह अक्सर सामना करना पड़ता है जब बड़ी मोनोलिथिक परियोजनाओं को डिबगिंग/रीफैक्टरिंग करते हैं जो लंबे समय से ओवरहाल हैं - यानी वास्तविक दुनिया के ऐप्स :))।समस्या यह है कि एक्सकोड के पास #if ब्लॉक के लिए बहुत खराब समर्थन है: कुछ घोंसले के बाद, यह सिंटैक्स हाइलाइटर और पूरी कक्षा के लिए फॉर्मेटर तोड़ता है, और यह कभी भी लेआउट को सही नहीं कर सकता है। यदि एक्सकोड बेहतर था, तो आपका दृष्टिकोण काम करेगा। आम तौर पर, यह केवल मामूली मामलों के लिए काम करता है :( – Adam

3

मुझे (सिर्फ एक XCode चेतावनी को अक्षम करने, विरासत कोड में किसी भी लाइन को बदलने के बिना) के लिए वास्तविक जवाब यहाँ है: https://stackoverflow.com/a/21046102/540639
एप्पल LLVM 6.0 कस्टम संकलक झंडे -> अन्य चेतावनी झंडे -> -Wno-टिप्पणी