Develop
2014.05.24 21:54
[ios] iOS에서 디바이스 종류 알아오기
Views 3769 Comment 0
다음과 같은 함수를 작성
# 플랫폼 체크
+ (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
No. | Category | Subject | Author | Date | Views |
---|---|---|---|---|---|
409 | Develop |
[c] 프로그래밍의 전반적인 설명 ppt
![]() |
hooni | 2003.04.23 | 7712 |
408 | Develop |
[c] 프로그램 코드(c/c++)를 html 파일로 변환
![]() |
hooni | 2013.04.23 | 7698 |
407 | Develop |
[c] 구조체 배열 예제 (학생 성적 계산)
![]() |
hooni | 2013.04.23 | 7693 |
406 | Develop |
[php] 자바스크립트 개판 만들기..
![]() |
hooni | 2013.04.23 | 7688 |
405 | Develop | [c] 관계형 연산자에 대한 설명 | hooni | 2013.04.23 | 7688 |
404 | Develop | SVN 초간단 사용하기 | hooni | 2014.02.28 | 7684 |
403 | Develop |
[c#] BFilter 툴바 소스 코드 ㅎㅎ
![]() |
hooni | 2013.04.23 | 7672 |
402 | Develop |
[java] 파일 라인수 계산하는 프로그램 (하위 디렉토리까지..)
![]() |
hooni | 2013.04.23 | 7667 |
401 | Develop | [js] 핫키(단축키) 구현방법 | hooni | 2003.04.23 | 7657 |
400 | Develop |
[c#]업글 뉴 툴바 개인적으로 만든거.. (new) ㅋㅋ
![]() |
hooni | 2013.04.23 | 7651 |
399 | Develop | [c] OpenGL 관측점 이동 | hooni | 2003.04.23 | 7646 |
398 | Develop |
[js] 자바스크립트와 정규표현식 메뉴얼 (chm 형식)
![]() |
hooni | 2013.04.23 | 7646 |