使用objective-c获取OSX版本
我怎样才能在objective-c中获得OSX版本?我希望避免使用shell命令。例如“10.5”或“10.4” 很抱歉设置了格式,我正在用我的iPad回答这个问题。您可以使用访问使用objective-c获取OSX版本,objective-c,cocoa,Objective C,Cocoa,我怎样才能在objective-c中获得OSX版本?我希望避免使用shell命令。例如“10.5”或“10.4” 很抱歉设置了格式,我正在用我的iPad回答这个问题。您可以使用访问 格式塔的老用户可能会惊讶地发现它仍然是64位的。您可以用这种方式解析它以获得所需的格式: NSProcessInfo *pinfo = [NSProcessInfo processInfo]; NSArray *myarr = [[pinfo operatingSystemVersionString] compon
格式塔的老用户可能会惊讶地发现它仍然是64位的。您可以用这种方式解析它以获得所需的格式:
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
使用NSAppKitVersionNumber查看此响应,以防您在应用程序中也使用AppKit(并且希望在10.8+上运行,因为格式塔现在已被弃用):
在导入后添加此代码
#define SYSTEM_VERSION_EQUAL_TO(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedSame)
添加上述代码后,请在希望查看操作系统版本的位置添加以下代码
NSString *systemVersion = [[UIDevice currentDevice] systemVersion];
NSLog(@"System version :%@",systemVersion);
通过以上代码,您可以轻松获得操作系统版本
谢谢从10.10开始,您可以使用NSProcessInfo.processInfo.operatingSystemVersion
获取NSOperatingSystemVersion结构
typedef struct {
NSInteger majorVersion;
NSInteger minorVersion;
NSInteger patchVersion;
} NSOperatingSystemVersion;
还有一个有用的isoperatingsystemmatelastVersion:
方法
NSOperatingSystemVersion minimumSupportedOSVersion = { .majorVersion = 10, .minorVersion = 12, .patchVersion = 0 };
BOOL isSupported = [NSProcessInfo.processInfo isOperatingSystemAtLeastVersion:minimumSupportedOSVersion];
如果您想向用户显示版本,这很好,但如果您想基于操作系统版本进行处理,则不太好。这是可行的,但添加了大量“垃圾”文本(构建信息等)。@JeremyP there-is-methodoperatingSystemVersion
为您提供了一个包含三个整数的结构,可能更容易处理的次要版本和补丁版本现在在OS X Mountain Lion中被弃用了…没有像样的替代品,可以像格式塔现在/过去那样全面:-(可能是
NSOperatingSystemVersion minimumSupportedOSVersion = { .majorVersion = 10, .minorVersion = 12, .patchVersion = 0 };
BOOL isSupported = [NSProcessInfo.processInfo isOperatingSystemAtLeastVersion:minimumSupportedOSVersion];