본문 바로가기

Mac&iOS

Mac OS 버전 체크

현재의 Mac OS X 버전을 체크하려면 NSProcessInfo 의 operatingSystemVersionString 를 사용할 수 있다.



@property(readonly, copy) NSString *operatingSystemVersionString 


NSProcessInfo Class Reference 도큐먼트를 읽어보면 operatingSystemVersionString의 값은 언어에 따라 값이 달라지는 값으로 보이며 따라서 Parsing에 적합하지 않다고 되어 있다. 


만약 Mac OS X 10.10이상에서 버전 체크를 하려면 operatingSystemVersion 를 사용하면 된다.


@property(readonly) NSOperatingSystemVersion operatingSystemVersion 



아래의 예제는 operatingSystemVersionString를 이용해서 현재의 Mac OS X 버전이 10.7 이상인지 체크하는 예제이다. 한국어나 영문에서는 이상없이 돌아가는 것으로 보이나, 다른 언어에서는 이상이 없는지 확인이 필요하다.


NSProcessInfo* pInfo = [NSProcessInfo processInfo];

NSString* macOSVersion = [pInfo operatingSystemVersionString];

    

NSArray* versionStringComponents = 

[macOSVersion componentsSeparatedByString:@" "];

if (versionStringComponents == nil || [versionStringComponents count] < 2) {

    NSLog(@"Error : versionStringComponents");

    return NO;

}

    

NSString* version = [versionStringComponents objectAtIndex:1];

NSArray* versionComponents = [version componentsSeparatedByString:@"."];

if (versionComponents == nil || [versionComponents count] < 2) {

    NSLog(@"Error : versionComponents");

    return NO;

}

    

NSInteger majorVersion = [[versionComponents objectAtIndex:0integerValue];

NSInteger minorVersion = [[versionComponents objectAtIndex:1integerValue];

NSLog(@"majorVersion = %ld, minorVersion = %ld", majorVersion, minorVersion);

    

if (minorVersion < 7) { // MacOS 10.7 미만

    NSLog(@" 프로그램은 MacOS 10.7 미만은 지원하지 않습니다.");

    return NO;

}

    

NSLog(@" 프로그램은 MacOS 10.7 이상입니다.");

return YES; 






Copyright © 2015 by ZAMCOM, All rights reserved.