2010-06-09 6 views
19

मुझे आश्चर्य है कि, सिम्युलेटर के लिए एक आईफोन ऐप बनाने के दौरान, विशेष डेफिन जोड़े गए हैं जो मुझे इस मामले के लिए सशर्त रूप से संकलित करने की अनुमति देते हैं?एक्सकोड, आईफोन: संकलन समय पर सिम्युलेटर लक्ष्य का पता कैसे लगाएं?

यदि नहीं, तो मुझे इस मामले के लिए अपने स्वयं के लक्ष्य जोड़ना होगा, लेकिन मेरे पास पहचान का एक स्वचालित तरीका होगा।

वैकल्पिक रूप से, यह जानने के लिए एक गतिशील तरीका है कि मेरा कोड सिम्युलेटर पर कब चलता है, मेरा मतलब है कि कुछ दस्तावेज है? मैं थोड़ी देर के लिए दस्तावेज़ खोज रहा हूं लेकिन अभी तक कोई भाग्य नहीं है।

उत्तर

53

संकलन समय के लिए आप TargetConditionals.h

#if TARGET_IPHONE_SIMULATOR 
// Simulator code 
#endif 

में परिभाषित रन-टाइम के लिए TARGET_IPHONE_SIMULATOR जरूरत जाँच आप उदाहरण के लिए UIDevice में -model विधि का उपयोग कर सकते हैं की जाँच करें। हटाया गया -
आईओएस 9.0 एसडीके में, TARGET_IPHONE_SIMULATOR है: iPhone सिम्युलेटर के लिए यह iPhone Simulator स्ट्रिंग (iPad सिम्युलेटर हालांकि बारे में निश्चित नहीं)

+0

4,2 के रूप में यह हमेशा वापस जाने के लिए 'iPhone Simulator' प्रकट होता है जब सिम्युलेटर आईपैड-मोड में है। – zekel

9

@Update देता है। TARGET_IPHONE_SIMULATOR के बजाय उपयोग TARGET_OS_SIMULATOR

#if TARGET_OS_SIMULATOR 
    // Simulator code 
#endif 
संबंधित मुद्दे