2011-08-26 9 views
18

मैं इस कॉल स्टेजिंग अंदर एक और शर्त जोड़ने की जरूरत है ..#ifdef में स्थिति को कैसे लिखें। स्टेजिंग के लिए। में ऑब्जेक्टिव-सी

इस हालत में यह कैसे करना है।

#ifdef MYAPP_PRODUCTION 
     buildMode = @"Production"; 
    #else 

    #ifdef MYAPP_RELEASE 
     buildMode = @"Release"; 
    #else MYAPP_DEBUG 
     buildMode = @"Debug"; 
    #endif 
    #endif 

एक और MyApp_Staging इस में शामिल करने के लिए करता है, तो हालत कैसे यह करने के लिए की जरूरत है?

उत्तर

55

आप कुछ इस तरह कर सकता है नई स्टेजिंग मोड सहित सभी विभिन्न विकल्पों होते हैं और पूरे बयान क्लीनर बनाने के लिए:

#ifdef MYAPP_PRODUCTION 
    buildMode = @"Production"; 
#elif MYAPP_RELEASE 
    buildMode = @"Release"; 
#elif MYAPP_DEBUG 
    buildMode = @"Debug"; 
#elif MYAPP_STAGING 
    buildMode = @"Staging"; 
#endif 
48

आपका प्रश्न बहुत स्पष्ट नहीं है ... आप में कई शर्तें चाहते हैं एक #ifdef, यहाँ एक समाधान है:

#if defined(MYAPP_RELEASE) && defined(MyApp_Staging) 
    // ... 
#else 
    // ... 
#endif 
+1

बिल्कुल सही! बस मैं जो खोज रहा था, भले ही ओपी – DonnaLea

+3

|| यह भी काम करता है:) # यदि परिभाषित रिलीज || परिभाषित स्टैगिंग –

2

स्विफ्ट और Xcode 7 में, वाक्य विन्यास बदल गया:

#if DEBUG || RELEASE 
    let URL = "https://www.example.com/beta" 
#elseif APPSTORE 
    let URL = "https://www.example.com/prod" 
#endif 
0

यदि आप 2 बिल्ड लक्ष्यों के साथ स्थिति को अस्वीकार करना चाहते हैं, तो इस तरह का उपयोग करें।

#if !(TOWNTALK || EPISD)

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