Я хочу получить версию операционной системы OS X, например: 10.5.4, 10.4.8 и т.д. Я хочу получить его в своем приложении, как мне это сделать? Спасибо!
Как получить версию операционной системы OS X?
Ответ 1
Вы можете прочитать список свойств в "/System/Library/CoreServices/SystemVersion.plist" и извлечь ключ "ProductVersion", как это делает приложение установщика OS X. Вот пример:
NSString *versionString;
NSDictionary * sv = [NSDictionary dictionaryWithContentsOfFile:@"/System/Library/CoreServices/SystemVersion.plist"];
versionString = [sv objectForKey:@"ProductVersion"];
В качестве альтернативы команда swvers -productVersion
будет делать то же самое.
Ответ 2
Вы можете использовать Gestalt:
SInt32 version = 0;
Gestalt( gestaltSystemVersion, &version );
BOOL leopard = ( version >= 0x1050 );
if ( leopard )
{
//draw it this way
}
else
{
//draw it that way
}
Имейте в виду, если вы проверяете, доступен ли метод или нет, лучше проверить это непосредственно с помощью responsesToSelector:.
Ответ 3
NSString *osver()
{
SInt32 versionMajor=0, versionMinor=0, versionBugFix=0;
Gestalt(gestaltSystemVersionMajor, &versionMajor);
Gestalt(gestaltSystemVersionMinor, &versionMinor);
Gestalt(gestaltSystemVersionBugFix, &versionBugFix);
return [NSString stringWithFormat:@"%d.%d.%d", versionMajor, versionMinor, versionBugFix];
}
Ответ 4
-[NSProcessInfo operatingSystemVersionString]
является читабельным и локализованным человеком. Подходит для отображения пользователю или использования в сообщениях об ошибках и т.д., Но не подходит для синтаксического анализа.
Ответ 5
Опять же, вы можете использовать Гештальт. Посмотрите документацию для получения дополнительной информации; в частности, вы захотите передать константы gestaltSystemVersionMajor
, gestaltSystemVersionMinor
и gestaltSystemVersionBugFix
в разделе "Константы системных версий" Справочник менеджера Gestalt документация
Ответ 6
Также существует оболочка Cocoa вокруг вызовов Gestalt, которые другие упомянули в Google Toolbox для Mac: http://code.google.com/p/google-toolbox-for-mac/source/browse/trunk/Foundation/GTMSystemVersion.h
Ответ 7
используйте этот метод, он вернет версию Mac OS X
+(SInt32) OSVersion;
{
SInt32 osxMinorVersion;
Gestalt(gestaltSystemVersionMinor, &osxMinorVersion);
return osxMinorVersion;
}
Ответ 8
После 10_10, 8_0 были представлены лучший и самый простой способ -
[NSProcessInfo processInfo].operatingSystemVersion
который вернется
NSOperatingSystemVersion
struct
со всеми тремя номерами.