Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用objective-c获取OSX版本_Objective C_Cocoa - Fatal编程技术网

使用objective-c获取OSX版本

使用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

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

很抱歉设置了格式,我正在用我的iPad回答这个问题。

您可以使用访问


格式塔的老用户可能会惊讶地发现它仍然是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-method
operatingSystemVersion
为您提供了一个包含三个整数的结构,可能更容易处理的次要版本和补丁版本现在在OS X Mountain Lion中被弃用了…没有像样的替代品,可以像格式塔现在/过去那样全面:-(可能是
NSOperatingSystemVersion minimumSupportedOSVersion = { .majorVersion = 10, .minorVersion = 12, .patchVersion = 0 };
BOOL isSupported = [NSProcessInfo.processInfo isOperatingSystemAtLeastVersion:minimumSupportedOSVersion];