जैसा कि अन्य ने ऊपर कहा है (और मैं स्टीवन फिशर का जवाब लेता हूं), आप आमतौर पर संस्करण संख्या प्राप्त नहीं करना चाहते हैं।
और यदि आपको केवल मौजूदा एसडीके के संस्करण के लिए एक प्रमुख ओएस एक्स संस्करण के खिलाफ तुलना करने की आवश्यकता है, तो आप इसका उपयोग कर रहे हैं, NSAppKitVersionNumber (जैसा कि मोनोलो के उत्तर में है) इसे करने का सही तरीका है।
यदि आपको वास्तव में किसी कारण के लिए संस्करण संख्या प्राप्त करने की आवश्यकता है (उदाहरण के लिए, अपने उपयोगकर्ताओं के बारे में विश्लेषण रिकॉर्ड करने के लिए, तो आप तय कर सकते हैं कि 10.6.0-10.6.5 का समर्थन करना बंद करना कब है), यहां यह कैसे करें:
#import <CoreServices/CoreServices.h>
SInt32 majorVersion, minorVersion, bugFixVersion;
Gestalt(gestaltSystemVersionMajor, &majorVersion);
Gestalt(gestaltSystemVersionMinor, &minorVersion);
Gestalt(gestaltSystemVersionBugFix, &bugFixVersion);
10.7.3 के लिए, यह majorVersion = 10, minorVersion = 7, bugFixVersion देता = 3.
10.7 प्रलेखन पैरा कि सीधे रास्ते OS संस्करण प्राप्त करने के लिए के रूप में गेस्टाल्ट सुझाव हटा दिया है, लेकिन यह है अभी भी बहिष्कृत या विरासत नहीं है, और कोई अन्य सुझाव नहीं है। असल में, इस जानकारी को प्राप्त करने के हर दूसरे तरीके (पार्सिंग - [एनएसपीक्रैसइन्फो ऑपरेटिंग सिस्टम सिस्टम वर्जनिंग], "kern.osrelease" पर sysctlbyname को कॉल करना और डार्विन कर्नेल संस्करण को ओएस एक्स संस्करण में कनवर्ट करना आदि) स्पष्ट रूप से कहीं से संकेतित है।तो, अगर आप वास्तव में करना चाहते हैं, तो ऐसा करने का यह तरीका है।
बस ध्यान रखें कि, सिस्टम 6.0.4 के रिलीज नोट्स के रूप में 1 9 8 9 में कहा गया था, यह नया एपीआई स्थायी नहीं हो सकता है और ओएस के भविष्य के संस्करण में हटाया जा सकता है।
मैंने त्वरित जांच की, और यह उत्तर आपकी मदद कर सकता है: http://stackoverflow.com/questions/157759/how-can-i-determine-the-running-mac-os-x-version-programmatically – CBredlow
एक सीपीपी # परिभाषित/# यदि आपका दोस्त यहां नहीं है। यह एक * संकलन * स्विच है (उदाहरण के लिए कौन सा मंच/सुविधा * लक्षित * है)। –
#if .... #endif एक प्रीप्रोसेसर है जो संकलन समय पर चलता है, मैं इसका उपयोग dev, qa (test) और रिलीज़ के बीच निर्धारित करने के लिए करता हूं। – Popeye