在目标c中查找Mac OS X版本号

Ama*_*der 12 macos cocoa objective-c

如何从Cocoa Objective-C应用程序中找到Mac OS X的版本号(例如"10.6.7")?

小智 25

#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];
Run Code Online (Sandbox Code Playgroud)

  • 请注意,此代码已弃用.建议检查链接的文章. (6认同)

Mat*_*her 18

您可以使用与Apple代码相同的技术...

NSDictionary *systemVersionDictionary =
    [NSDictionary dictionaryWithContentsOfFile:
        @"/System/Library/CoreServices/SystemVersion.plist"];

NSString *systemVersion =
    [systemVersionDictionary objectForKey:@"ProductVersion"];
Run Code Online (Sandbox Code Playgroud)

Apple正是这样填写函数中各种系统实用程序的版本号_CFCopySystemVersionDictionary:

http://opensource.apple.com/source/CF/CF-744/CFUtilities.c


tai*_*ino 12

对于OS X 10.10+,我认为使用它NSProcessInfo是一种更简单,更安全的方法:

NSOperatingSystemVersion version = [[NSProcessInfo processInfo] operatingSystemVersion];
NSLog([NSString stringWithFormat:@"%ld.%ld.%ld", version.majorVersion, version.minorVersion, version.patchVersion]);
Run Code Online (Sandbox Code Playgroud)