2011-04-05 14 views
5

मैं XCode 4 का उपयोग कर रहा है, और अपने प्रोजेक्ट का निर्माण सेटिंग में के लिए एक पूर्वप्रक्रमक मैक्रो को परिभाषित करने, मैं निर्धारित किया है:Xcode - सशर्त संकलन

Preprocessor macros 
    Debug DEBUG;FULL 
    Release FULL 

और एक ही परियोजना का एक और लक्ष्य में:

Preprocessor macros 
    Debug DEBUG;LITE 
    Release LITE 

दो लक्ष्य बिल्कुल समान फ़ाइलों का उपयोग कर रहे हैं, प्लिस्ट जानकारी फ़ाइल को छोड़कर अलग किया गया है।

फिर बाद में मेरे कोड में, मैं ने लिखा है:

#ifdef FULL 
    // ###### FULL VERSION 
    NSLog(@"test"); 
    // ###### 
#endif 

लेकिन लॉग कभी नहीं लिखा है।

क्या मैं गलत कर रहा हूँ? मैं पूर्ण विवरण में मूल्य निर्धारित करने के लिए (आवश्यकता) नहीं चाहता हूं।

उत्तर

12

एकाधिक प्रीप्रोसेसर मैक्रोज़ स्पेस से अर्धविराम से अलग होते हैं। तो यह होना चाहिए: "; पूर्ण डीबग"

Preprocessor macros 
    Debug DEBUG FULL 
    Release FULL 
अर्धविराम के साथ

, आप नामक केवल एक मैक्रो को परिभाषित कर रहे हैं। और वह आपके #ifdef से मेल नहीं खाएगा।

संबंधित मुद्दे