में प्रीप्रोसेसर द्वारा अनदेखा किया गया है, मैंने प्रोजेक्ट लक्ष्य के Build Settings
के Preprocessor Macros
अनुभाग मेंजोड़ा, और जब भी मैं इसे कोड में उपयोग करता हूं, प्रीप्रोसेसर सोचता है कि यह परिभाषित नहीं है।लक्ष्य प्रीप्रोसेसर मैक्रोज़ को एक्सकोड
- alt + उस पर क्लिक करें एक प्रश्न चिह्न से पता चलता
- वाक्य रचना रंग अच्छी तरह से
- काम नहीं करता है वाक्य रचना स्वत: पूर्ण अच्छी तरह से
उदाहरण के लिए काम नहीं करता है, होने:
#if TEST
// a
#else
// b
#endif
इस व्यवहार में है:
- सिंटेक्स रंग केवल
// b
के लिए काम करता - सिंटेक्स स्वत: पूर्ण के लिए ही
// b
काम करता है इसका कारण यह है पूर्वप्रक्रमक TEST
नहीं मिल सकता है (भले ही 1
रूप में परिभाषित किया गया है, जैसा कि मैंने पहले कहा) तो यह इसे false
के रूप में मानता है।
क्या इन समस्याओं को हल करने का कोई तरीका है?
संपादित करें:
मेरे उपयोग के मामले कई परियोजना लक्ष्य से संबंधित है। तो, कहें कि प्रारंभिक लक्ष्य का नाम First
है, जिसमें TEST
प्रीप्रोसेसर मैक्रो मूल्य 1
के साथ परिभाषित किया गया है।
अगर मैं एक अन्य परियोजना लक्ष्य परिभाषित नहीं पूर्वप्रक्रमक मैक्रो के Second
नामित बना सकते हैं और इसके लिए कुछ कोड जोड़ना चाहते हैं केवल यदि TEST
0
(false
/परिभाषित नहीं) है, मैं इसे #else
ब्लॉक (// b
) में डाल देता हूँ।
यह जानते हुए कि वाक्य रचना रंग और स्वत: पूर्ण // b
के लिए काम करता है, ऐसा लगता है कि यह ठीक से काम करता है, लेकिन अगर मैं First
एक करने के लिए वर्तमान लक्ष्य को बदलने के रूप में Second
चयन किया जाता है (यमक इरादा) और यहां तक कि इसे बनाने, यह अभी भी काम करता है ।
यदि आप प्रोजेक्ट बनाते हैं, तो प्रीप्रोसेसर संकलन समय झंडे का पता लगाएगा और रंग और स्वत: पूर्ण दिखाएगा। क्या आपने कोशिश की है? – manishg
बेशक मैंने परियोजना का निर्माण किया। –
क्या आपने इसे डीबग और रिलीज दोनों के लिए किया था? यह मेरे अंत में काम करता है। – manishg