iPhone 버전 판별하기

iPhone 개발을 하다 보면 컴파일 시 버전을 판단해야 되는 경우가 있습니다.

단순히 버전만을 체크할 경우

#define __IPHONE_2_0     20000  
#define __IPHONE_2_1     20100  
#define __IPHONE_2_2     20200  
#define __IPHONE_3_0     30000

와 같은 매크로를 사용하면 됩니다. (Availability.h에 선언되어 있습니다)
즉 다음과 같이..

#ifdef __IPHONE_3_0
// 3.0일 때 처리
#endif

하면 되죠.
그런데 "현재 버전"의 "이상", 즉 "2.2 이상에서만"이라는 조건은 여러개의 항목들을 전부 조합하여 사용할 수도 있지만, 다음과 같은 방법을 이용하여 판단할 수 있습니다

#if defined(__IPHONE_3_0) && (__IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_3_0)


__IPHONE_OS_VERSION_MIN_REQUIRED는 현재 버전에서 지원되는 최소 버전이며, __IPHONE_OS_VERSION_MAX_ALLOWED는 현재 버전에서 지원되는 최대 버전입니다.
따라서 __IPHONE_OS_VERSION_MAX_ALLOWED를 이용하면 "현재 버전에서 지원되는 최대 버전" 이하/이상 등의 조건을 사용할 수 있습니다.

이 때 주의할 점은, 2.0의 경우 __IPHONE_3_0이라는 매크로가 정의 되어 있지 않기 때문에 defined()를 이용하여 정의 되어 있는지 먼저 검사하여야 정확한 버전 비교가 됩니다.
크리에이티브 커먼즈 라이센스
Creative Commons License

Posted by 장현준

2009/09/30 11:23 2009/09/30 11:23
Response
No Trackback , No Comment
RSS :
http://b4you.net/blog/rss/response/246

Trackback URL : http://b4you.net/blog/trackback/246

« Previous : 1 : ... 11 : 12 : 13 : 14 : 15 : 16 : 17 : 18 : 19 : ... 245 : Next »

블로그 이미지

빗소리를 먹는 사람.

- 장현준

Notices

Archives

Authors

  1. 장현준

Recent Trackbacks

  1. 듀얼클러치의 생각 rsvin28's me2DAY 2009

Calendar

«   2012/02   »
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29      

Site Stats

Total hits:
158000
Today:
70
Yesterday:
228