versiones ver sierra puedo mojave mac high donde descargar capitan actualizar cocoa osx carbon

cocoa - sierra - ¿Cómo puedo determinar la ejecución de la versión de Mac OS X mediante programación?



mac os x descargar (8)

¿Es la versión del sistema operativo realmente lo que quieres? Puede haber algo más apropiado para probar, como la presencia o el número de versión de un marco particular.

Tengo un programa que necesita comportarse de forma ligeramente diferente en Tiger que en Leopard. ¿Alguien sabe de una llamada al sistema que me permitirá determinar con precisión qué versión de Mac OS X estoy ejecutando? He encontrado una serie de definiciones de macro para determinar el sistema operativo de la máquina de compilación, pero nada realmente bueno para determinar el sistema operativo de la máquina en ejecución.

Gracias, Joe


¿Podrías verificar la presencia de una capacidad? Por ejemplo:

if (NSClassFromString(@"NSKeyedArchiver") != Nil)

o

if ([arrayController respondsToSelector: @selector(selectedIndexes)])

entonces usted sabe que el sistema operativo hace lo que necesita hacer, no que el grupo de mercadeo de productos de Apple le haya dado un número en particular ;-)


En la terminal:

system_profiler SPSoftwareDataType

Da:

Software: System Software Overview: System Version: Mac OS X 10.5.5 (9F33) Kernel Version: Darwin 9.5.0 Boot Volume: Main Boot Mode: Normal Computer Name: phoenix User Name: Douglas F Shearer (dougal) Time since boot: 2 days 16:55

O:

sw_vers

Da:

ProductName: Mac OS X ProductVersion: 10.5.5 BuildVersion: 9F33



respondsToSelector: casi seguro es mejor que mantener una tabla de lo que los lanzamientos concretos hacen y no implementan.

Ser flojo. Deje que el tiempo de ejecución le diga si puede hacer algo o no, y recurra a métodos más antiguos cuando lo necesite. Su código será mucho menos frágil porque no tiene que mantener sus propios datos globales con los que el resto de su código debe seguir consultando.


Ejecuta esto en la línea de comando:

system_profiler SPSoftwareDataType | grep Mac


dentro de tu programa puedes usar Gestalt. Aquí está el código que estoy usando para que mi programa obtenga la versión del sistema operativo.

long version = 0; OSStatus rc0 = Gestalt(gestaltSystemVersion, &version); if((rc0 == 0) && (version >= 0x1039)) { // will work with version 10.3.9 // works best with version 10.4.9 return; // version is good } if(rc0) { printf("gestalt rc=%i/n", (int)rc0); } else { printf("gestalt version=%08x/n", version); }