2014-09-18 11 views
8

के साथ संकलित किया गया था या नहीं, क्योंकि आप में से कुछ को पता चल सकता है कि पूरी तरह से डीबग-मोड स्विफ्ट में चलने पर बहुत धीमा हो सकता है। क्या कोई तरीका है कि मैं कोड में या जीयूआई में एक संदेश मुद्रित कर सकता हूं ताकि मुझे यह बताने के लिए कि अगर मैं इसे सही तरीके से संकलित करना भूल गया हूं। मैं मिश्रित मोड में चल रहा हूं इसलिए अगर कोई मुझे ओब्जेक और स्विफ्ट कोड दे सकता है जो बहुत ही बढ़िया होगा।स्विफ्ट को ऑप्टिमाइज़ेशन

धन्यवाद!

+1

http://stackoverflow.com/questions/24003291/ifdef-replacement-in-swift-language की तुलना करें। –

उत्तर

10

मुझे नहीं लगता कि आप क्रम में यह पता लगा सकते हैं, लेकिन आप DEBUG पूर्वप्रक्रमक मैक्रो (ऑब्जेक्टिव-सी में) का उपयोग कर सकते हैं कि डीबग विन्यास में डिफ़ॉल्ट रूप से परिभाषित किया गया है:

#ifdef DEBUG 
NSLog(@"I'm in debug mode!"); 
#endif 

यह मानता है कि आप रिलीज विन्यास में अनुकूलन के बिना संकलन नहीं है :-)

आप यह देखना होगा कि स्विफ्ट में चाहते हैं, आप डीबग configu के लिए -D DEBUG "अन्य स्विफ्ट झंडे" जोड़कर एक Build Configuration परिभाषित करने की जरूरत बिल्ड सेटिंग्स में केवल राशन। तो फिर तुम कि विन्यास के लिए जाँच कर सकते हैं #if:

#if DEBUG 
println("I'm in debug mode!") 
#endif 
+0

तो अब रनटाइम पर तरीका यह पता लगाने के लिए कि किस स्तर का अनुकूलन उपयोग किया गया था? – Jeef

+1

@jeef ध्वज सेट करने के लिए इस तकनीक का उपयोग करें, और फिर आप रनटाइम –

+0

पर ध्वज की जांच कर सकते हैं अगर कोई आश्चर्य करता है कि ये झंडे क्यों काम नहीं कर रहे हैं तो सुनिश्चित करें कि एक्सकोड उन्हें क्रम में दिखाता है @jou उन्हें यहां निर्दिष्ट किया गया - डी DEBUG। यदि एक्सकोड डीईबीयूजी-डी दिखाता है तो यह काम नहीं करेगा। – zumzum

0

आप एक तर्क के रूप या वातावरण चर में एक ध्वज जोड़ने के लिए Xcode के योजनाओं का उपयोग कर सकते हैं - आप तो यह NSProcessInfo प्रयोग करने के लिए जाँच कर सकते हैं - या तो -arguments या -environment

एक्सकोड में, मेनू बार में उत्पाद> योजना> संपादन योजना पर जाएं, रन का चयन करें और तर्क टैब के अंतर्गत, तर्क या पर्यावरण चर जोड़ें।

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