팁일지는 모르겠지만
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에서 모두 활용가능하도록 분기 처리를 하였습니다.
다 알고 계신분도 있지만 저처럼 아직 서툰사람들에게는 자그마한 팁이 될까 해서 올립니다.
출처 : http://cafe.naver.com/mcbugi/170882
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
if([[[UIDevice currentDevice] systemVersion] floatValue] >= 5.0f)
{
//5.0이상
}
else
{
//5.0이하
}
#else
//5.0 이하
#endif
다 알고 계신분도 있지만 저처럼 아직 서툰사람들에게는 자그마한 팁이 될까 해서 올립니다.
출처 : http://cafe.naver.com/mcbugi/170882
'프로그래밍 > iOS' 카테고리의 다른 글
Twitter & Facebook 로그아웃 정리 (1) | 2011.11.29 |
---|---|
알아봅시다 ARC(Auto Reference Counting) (0) | 2011.11.29 |
iOS 5.0 이하 (4.x) 에서 viewWillAppear , viewWillDisappear 동작이 안될때.. (0) | 2011.11.29 |
webview web 에서 app 으로 데이타 전달하기 (0) | 2011.11.29 |
ASIHttpRequest를 ARC와 함께 쓰기 (XCode 4.2) (1) | 2011.11.29 |