获取带有objective-c的OSX版本

时间:2010-09-12 13:08:25

标签: objective-c cocoa

我如何才能在objective-c中获得OSX版本?我想避免使用shell命令。例如“10.5”或“10.4”

6 个答案:

答案 0 :(得分:15)

NSProcessInfo *pInfo = [NSProcessInfo processInfo];
NSString *version = [pInfo operatingSystemVersionString];

抱歉格式化,我正在使用iPad来回答这个问题。

答案 1 :(得分:3)

您可以通过这种方式解析它以获得所需的格式:

NSProcessInfo *pinfo = [NSProcessInfo processInfo];

NSArray *myarr = [[pinfo operatingSystemVersionString] componentsSeparatedByString:@" "];
NSString *version = [@"Mac OS X " stringByAppendingString:[myarr objectAtIndex:1]];

这个f.e.会给你Mac OS X 10.6.8

答案 2 :(得分:3)

从10.10开始,您可以使用NSProcessInfo.processInfo.operatingSystemVersion来获取NSOperatingSystemVersion结构。

typedef struct {
    NSInteger majorVersion;
    NSInteger minorVersion;
    NSInteger patchVersion;
} NSOperatingSystemVersion;

还有一种有用的isOperatingSystemAtLeastVersion:方法。

NSOperatingSystemVersion minimumSupportedOSVersion = { .majorVersion = 10, .minorVersion = 12, .patchVersion = 0 };
BOOL isSupported = [NSProcessInfo.processInfo isOperatingSystemAtLeastVersion:minimumSupportedOSVersion];

答案 3 :(得分:2)

您可以使用the Gestalt function访问the components of the OS version

Gestalt的旧用户可能会惊讶地发现它仍然可以在64位中使用。

答案 4 :(得分:1)

如果您在应用中使用AppKit,也可以使用NSAppKitVersionNumber查看此响应(并希望在10.8+上运行,因为现在不推荐使用Gestalt):

How to know what Mac OS the app is running on?

答案 5 :(得分:0)

#define SYSTEM_VERSION_EQUAL_TO(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedSame)

之后添加此代码
NSString *systemVersion = [[UIDevice currentDevice] systemVersion];
        NSLog(@"System version :%@",systemVersion);

添加上面的代码后,请在下面的代码中添加您想要查看os-version的代码

    let storyboard = UIStoryboard(name: storyBoard, bundle: nil)
    var controller:UIViewController


    controller = storyboard.instantiateInitialViewController() as! UIViewController
    AppDelegate.controller!.presentViewController(controller, animated: true, completion: nil)

您可以通过上面的代码轻松获得操作系统版本

谢谢