Como han dicho otros (y elegiría la respuesta de Steven Fisher), generalmente no desea obtener el número de versión.
Y si solo tiene que hacer comparaciones con una versión principal de OS X hasta la versión del SDK actual que está utilizando, NSAppKitVersionNumber (como en la respuesta de Monolo) es la forma correcta de hacerlo.
Si realmente necesita obtener el número de versión por alguna razón (por ejemplo, para registrar el análisis de sus usuarios, para que pueda decidir cuándo dejar de admitir 10.6.0-10.6.5), aquí le mostramos cómo hacerlo:
#import <CoreServices/CoreServices.h>
SInt32 majorVersion, minorVersion, bugFixVersion;
Gestalt(gestaltSystemVersionMajor, &majorVersion);
Gestalt(gestaltSystemVersionMinor, &minorVersion);
Gestalt(gestaltSystemVersionBugFix, &bugFixVersion);
para 10.7.3, esto da MajorVersion = 10, minorVersion = 7, bugFixVersion = 3.
la documentación 10.7 elimina el párrafo que sugiere directamente Gestalt como la manera de obtener la versión del sistema operativo, pero es todavía no está en desuso o heredado, y no hay otras sugerencias. De hecho, cualquier otra forma de obtener esta información (análisis - [NSProcessInfo operatingSystemVersionString], llamando a sysctlbyname en "kern.osrelease" y convirtiendo la versión del kernel de Darwin a la versión de OS X, etc.) está explícitamente contraindicada en alguna parte.Entonces, esta es la manera de hacerlo, si realmente quieres.
Solo tenga en cuenta que, como las notas de la versión para el Sistema 6.0.4 lo dijeron en 1989, esta nueva API puede no ser permanente y podría eliminarse en una versión futura del sistema operativo.
Hice una comprobación rápida, y esta respuesta podría ayudarlo: http://stackoverflow.com/questions/157759/how-can-i-determine-the-running-mac-os-x-version-programmatically – CBredlow
Un CPP # define/# si * * no * es tu amigo aquí. Es un conmutador de * compilación * (por ejemplo, qué plataforma/función está siendo * dirigida *). –
#if .... #endif es un preprocesador que se ejecuta en tiempo de compilación, lo utilizo para determinar entre dev, qa (prueba) y versión. – Popeye