2013-08-11 2 views
7

आईई, क्या यह जानना संभव है कि मेरा कोड एसडीके 5.1, या 6.0, या किसी अन्य संस्करण के तहत संकलित किया गया है या नहीं?क्या कोई मैक्रो है जो आईओएस एसडीके संस्करण को दर्शाता है जिसके खिलाफ कोड संकलित किया गया है?

उत्तर

14
#ifdef __IPHONE_6_0 
    // Will be ignored when compiled under SDK 5.1 
#endif 

आप आईओएस एसडीके 5.1 या किसी अन्य को पुराने SDK __IPHONE_6_0 के लिए कोई #define है के तहत संकलन कर रहे हैं ताकि पता चल सके कि मैक्रो परिभाषित किया गया है, एसडीके संस्करण की जांच में मदद करता है।

2

आईओएस एसडीके में फ़ाइल "Availability.h" और "AvailabilityInternal.h" पर एक नज़र डालें और आप उन सशर्तताओं को देखेंगे जिन्हें आप उपयोग करने में सक्षम हो सकते हैं। ऐप्पल ओपन सोर्स जिन्हें मैंने लिंक किया है (which I found in this closely related question) वही नहीं हैं जो आपको अपने एसडीके में मिलेंगे।

उदाहरण के लिए, मैं "__IPHONE_OS_VERSION_MIN_REQUIRED" के लिए एक परिभाषित देख सकते हैं और यदि आप केवल iOS 6 & नए पर इस कोड को संकलित करने के लिए चाहते हैं, आप के लिए "__IPHONE_6_0" इस सेट के लिए कुछ करना चाहते हैं।

+0

दुर्भाग्यवश, तार्किक लक्ष्य आईओएस संस्करणों को प्रतिबंधित नहीं करना है, ताकि यह अच्छी तरह से काम न करे। मैंने आईओएस संस्करण (__IPHONE_X_Y) की मौजूदा परिभाषाओं से एसडीके को डालने के बारे में सोचा, लेकिन मैं देखना चाहता हूं कि कुछ बेहतर है या नहीं। –

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