我如何才能在objective-c中获得OSX版本?我想避免使用shell命令。例如“10.5”或“10.4”
答案 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):
答案 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)
您可以通过上面的代码轻松获得操作系统版本
谢谢