2011-09-19 19 views
16

के आधार पर सशर्त कोड मेरे आईफोन आईओएस प्रोजेक्ट में दो लक्ष्य हैं: Production और Previewआईओएस: मौजूदा लक्ष्य

अब मैं कोड की एक पंक्ति निष्पादित करना चाहता हूं, केवल तभी यदि मैं लक्ष्य Preview में हूं। मुझे लगता है कि यह #ifdef ... के किसी प्रकार का होना होगा। मुझे a solution मिला जो लगभग मुझे पसंद है लेकिन यह कॉन्फ़िगरेशन का उपयोग करता है और लक्ष्य नहीं करता है।

उदाहरण:

-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 

    #ifdef MY_PREVIEW_TARGET 
    [SomeLibraryWhichIsInPreviewTarget someMethod]; 
    #endif 

    // Code that applies for both targets ... 
} 

आपकी मदद

उत्तर

19

आप निर्माण सेटिंग्स की प्रीप्रोसेसर मैक्रो खंड में ifdef एक पूर्वप्रक्रमक जोड़ सकता है के लिए धन्यवाद।

+0

यह प्रीप्रोसेसर मैक्रो क्यों होना चाहिए। जैसा कि "USER" के लिए उपयोगी है, यह "उपयोगकर्ता परिभाषित" होना चाहिए। यही है ना – Satyam

36

सैम समाधान ने ठीक काम किया।

  1. ओपन पूर्वावलोकन के लक्ष्य का निर्माण सेटिंग्स
  2. Preprocessor MacrosMY_PREVIEW_TARGET=YES पर सेट करें और फिर मैं लक्ष्य के लिए जाँच करने के लिए ऊपर मेरी कोड का उपयोग कर सकते हैं।
+10

बस 'प्रीप्रोसेसर मैक्रोज़' में प्रविष्टि 'MY_PREVIEW_TARGET' जोड़ें। फिर अपने कोड में '#ifdef MY_PREVIEW_TARGET' का उपयोग करें। 'MY_PREVIEW_TARGET = YES' में वास्तव में मैक्रो को 'YES' पर सेट करने की आवश्यकता नहीं है। कोई मान सेट करने की आवश्यकता नहीं है क्योंकि आप उस मान के विरुद्ध जांच नहीं कर रहे हैं, केवल चर के अस्तित्व। – SwiftArchitect

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