Contents

조회 수 3639 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
다음과 같은 함수를 작성

# 플랫폼 체크
+ (NSString *) platform
{
    size_t size;
 
    sysctlbyname("hw.machine", NULL, &size, NULL, 0);
 
    char *machine = malloc(size);
    sysctlbyname("hw.machine", machine, &size, NULL, 0);
    NSString *platform = [NSString stringWithUTF8String:machine];
    free(machine);
 
    return platform;
}
위의 함수는 클래스 함수로 정의하였으나 인스턴스 함수로 정의하여도 동작함

# 버전 체크
+ (int) machine
{
    NSString *platform = [self platform];
 
    /* iPhone */
    if ([platform isEqualToString:@"iPhone1,1"]) return 1;// @"iPhone 2G";
    if ([platform isEqualToString:@"iPhone1,2"]) return 2;// @"iPhone 3G";
    if ([platform isEqualToString:@"iPhone2,1"]) return 3;// @"iPhone 3GS";
    if ([platform isEqualToString:@"iPhone3,1"]) return 4;// @"iPhone 4";
    if ([platform isEqualToString:@"iPhone3,3"]) return 4;// @"Verizon iPhone 4";
    if ([platform isEqualToString:@"iPhone4,1"]) return 5;// @"iPhone 4S";
    if ([platform isEqualToString:@"iPhone5,1"]) return 6;// @"iPhone 5 (GSM)";
    if ([platform isEqualToString:@"iPhone5,2"]) return 6;// @"iPhone 5 (GSM+CDMA)";
    if ([platform isEqualToString:@"iPhone5,3"]) return 6;// @"iPhone 5C (GSM)";
    if ([platform isEqualToString:@"iPhone5,4"]) return 6;// @"iPhone 5C (Global)";
    if ([platform isEqualToString:@"iPhone6,1"]) return 7;// @"iPhone 5S (GSM)";
    if ([platform isEqualToString:@"iPhone6,3"]) return 7;// @"iPhone 5S (Global)";
 
    /* iPod Touch */
    if ([platform isEqualToString:@"iPod1,1"]) return 11;// @"iPod Touch 1G";
    if ([platform isEqualToString:@"iPod2,1"]) return 12;// @"iPod Touch 2G";
    if ([platform isEqualToString:@"iPod3,1"]) return 13;// @"iPod Touch 3G";
    if ([platform isEqualToString:@"iPod4,1"]) return 14;// @"iPod Touch 4G";
    if ([platform isEqualToString:@"iPod5,1"]) return 15;// @"iPod Touch 5G";
 
    /* iPad */
    if ([platform isEqualToString:@"iPad1,1"]) return 1;// @"iPad";
    if ([platform isEqualToString:@"iPad2,1"]) return 2;// @"iPad 2 (WiFi)";
    if ([platform isEqualToString:@"iPad2,2"]) return 2;// @"iPad 2 (GSM)";
    if ([platform isEqualToString:@"iPad2,3"]) return 2;// @"iPad 2 (CDMA)";
    if ([platform isEqualToString:@"iPad2,4"]) return 2;// @"iPad 2 (Wi‑Fi Rev A)";
    if ([platform isEqualToString:@"iPad2,5"]) return 4;// @"iPad mini (WiFi)";
    if ([platform isEqualToString:@"iPad2,6"]) return 4;// @"iPad mini (GSM)";
    if ([platform isEqualToString:@"iPad2,7"]) return 4;// @"iPad mini (GSM+CDMA)";
    if ([platform isEqualToString:@"iPad3,1"]) return 3;// @"iPad 3 (WiFi)";
    if ([platform isEqualToString:@"iPad3,2"]) return 3;// @"iPad 3 (GSM+CDMA)";
    if ([platform isEqualToString:@"iPad3,3"]) return 3;// @"iPad 3 (GSM)";
    if ([platform isEqualToString:@"iPad3,4"]) return 4;// @"New iPad (WiFi)";
    if ([platform isEqualToString:@"iPad3,5"]) return 4;// @"New iPad (GSM)";
    if ([platform isEqualToString:@"iPad3,6"]) return 4;// @"New iPad (GSM+CDMA)";
    if ([platform isEqualToString:@"iPad4,1"]) return 5;// @"iPad Air (WiFi)";
    if ([platform isEqualToString:@"iPad4,2"]) return 5;// @"iPad Air (Cellular)";
    if ([platform isEqualToString:@"iPad4,4"]) return 5;// @"iPad mini Retina (WiFi)";
    if ([platform isEqualToString:@"iPad4,4"]) return 5;// @"iPad mini Retina (Cellular)";
 
    /* Simulator */
    if ([platform isEqualToString:@"i386"]) return 3;// @"Simulator";
 
    return 0;
}


# 체크 사항
현재 위의 코드를 실행하면 Implicit declaration of function ‘sysctlbyname’ is invalid in C99 이라는 warning이 발생하지만 실행에는 문제가 없음.


[참고] http://theiphonewiki.com/wiki/Models

?

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
1173 System/OS 해커스랩 깨기.. 후후.. ㅋㅋ file hooni 2013.04.23 18410
1172 Etc 플라스터(Plaster) 수업 내용 secret hooni 2016.05.24 0
1171 Develop 프로그램 문서 관리 (Doxygen) hooni 2013.04.23 16384
1170 Develop 프로그래밍에서 foo, bar 함수의 유래 file hooni 2013.06.25 21243
1169 Develop 프로그래밍 소스 관련 사이트.. hooni 2013.04.23 16484
1168 Develop 페이팔에서 돈 찾기 (Paypal withdraw) file hooni 2014.02.20 10954
1167 Etc 티스토리 테이블 html,css 구문 hooni 2013.11.03 15941
1166 System/OS 콘솔에서 패스워드 걸린 zip 압축하는 명령 hooni 2018.03.02 927
1165 System/OS 컴파일러 수업 자료(교재 : 컴파일러 입문) file hooni 2003.04.23 21965
1164 Develop 캘리포니아 운전면허 족보 file hooni 2017.06.12 724
1163 Etc 캘리포니아 운전면허 문제 file hooni 2017.07.22 956
1162 Develop 최근 논문 자료 (2011/01/03, 만현형한테 보낸거..) secret hooni 2013.04.23 10366
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 98 Next
/ 98