본문 바로가기

Programming/iOS

Xcode4.2와 그 이하버전에서 iOS 5.0 분기문 처리

반응형

xCode4.2와 그 이하버전의 xCode에서 모두 쓰임이 가능한 버전 별 분기입니다.

iOS 5.0 이상에서만 쓰이는 코드를 분기타기 위해서는 아래와 같이 __IPHONE_5_0 이상에서 쓰이도록 해야합니다.

#if __IPHONE_OS_VERSION_MAX_ALLOWED > __IPHONE_5_0

#endif

 물론 이렇게 하면 xCode4.2에서는 제대로 돌아가지만 그 이하의 xCode에서는 __IPHONE_5_0을 찾지 못해서
 BAD_ACCESS가 나곤 합니다.

그래서 아래와 같이 4.3보다 크게 해야지만 정상적으로 됩니다.
#if __IPHONE_OS_VERSION_MAX_ALLOWED > __IPHONE_4_3

#endif

이제 잘 되겠지 하고 4.3 simulator에서 돌리는 순간 해당구문에서 바로 에러가 납니다...ㅠ
그 이유를 살펴보니 simulator는 4.3이지만 빌드한 SDK는 5.0이기 때문에 if문안에 접근해서 에러가 나게 됩니다.

그래서 실제 디바이스의 버전을 체크해 줌으로써
simulator와 Device에서 모두 활용가능하도록 분기 처리를 하였습니다.

#if __IPHONE_OS_VERSION_MAX_ALLOWED > __IPHONE_4_3
    if([[[UIDevice currentDevice] systemVersion] floatValue] >= 5.0f)
    {
        //5.0이상   
    }
    else
    {
        //5.0이하
    }
#else
    //5.0 이하
#endif

반응형

'Programming > iOS' 카테고리의 다른 글

현재시간에서 초만 제거하기  (0) 2011.11.16
아이폰 가로모드 & 세로모드  (0) 2011.11.15
xCode4 지역화  (0) 2011.10.25
현재 아이폰의 IP주소 알아내기  (0) 2011.10.17
Xcode 4.2에서 mainWindow.xib 생성  (0) 2011.10.07