Как я могу найти номер версии Mac OS X (например, "10.6.7" ) из моего приложения Cocoa Objective-C?
Найдите номер версии Mac OS X в объективе c
Ответ 1
#import <CoreServices/CoreServices.h>
SInt32 major, minor, bugfix;
Gestalt(gestaltSystemVersionMajor, &major);
Gestalt(gestaltSystemVersionMinor, &minor);
Gestalt(gestaltSystemVersionBugFix, &bugfix);
NSString *systemVersion = [NSString stringWithFormat:@"%d.%d.%d",
major, minor, bugfix];
Ответ 2
Вы можете использовать ту же технику, что использует код Apple...
NSDictionary *systemVersionDictionary =
[NSDictionary dictionaryWithContentsOfFile:
@"/System/Library/CoreServices/SystemVersion.plist"];
NSString *systemVersion =
[systemVersionDictionary objectForKey:@"ProductVersion"];
Apple делает именно это, чтобы заполнить номер версии для различных системных утилит в функции _CFCopySystemVersionDictionary
здесь:
Ответ 3
Для OS X 10.10+ я думаю, что использование NSProcessInfo
- это более простой и безопасный способ сделать это:
NSOperatingSystemVersion version = [[NSProcessInfo processInfo] operatingSystemVersion];
NSLog([NSString stringWithFormat:@"%ld.%ld.%ld", version.majorVersion, version.minorVersion, version.patchVersion]);
Ответ 4
Если эта информация необходима для условного вызова нового API, теперь у вас есть проверки доступности, например:
if (@available(macOS 10.14, *)) {
return [NSColor controlAccentColor];
} else {
return [NSColor blueColor];
}