매크로를 사용하여 버전을 다르게 지정했지만 강제로 제대로 작동하지는 않습니다. 내가 사용하지 :버전 관리를위한 #ifdef 매크로
#ifdef _IPHONE_4_0
[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationFade];
#else
[[UIApplication sharedApplication] setStatusBarHidden:YES animated:YES];
#endif
및
#if __IPHONE_OS_VERSION_MAX_ALLOWED < _IPHONE_4_0
[[UIApplication sharedApplication] setStatusBarHidden:YES animated:YES];
#else
[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationFade];
#endif
및
#if defined(__IPHONE_4_0)
[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationFade];
#else
[[UIApplication sharedApplication] setStatusBarHidden:YES animated:YES];
#endif
을 아무리 내가 사용하는 버전을 - 항상 라인의 하나라고합니다. 그리고 __IPHONE_4_0은 항상 정의됩니다. 어떤 아이디어?
최고 감사합니다, 드미트리 M.
답해 주셔서 감사합니다. 그러나이 경우이 매크로에 대해 무엇을 사용할 수 있습니까? 나는 다른 응용 프로그램에서 동일한 응용 프로그램이 망가질 경우 __IPHONE_OS_VERSION_MAX_ALLOWED가 다를 것이라고 생각했습니다. 아니? – Dmitry
하나님. 매크로는 * 컴파일러의 상태에만 영향을줍니다 * - 일단 응용 프로그램이 컴파일되면 RAM의 안개 속으로 사라지고 응용 프로그램에 더 이상 영향을 미치지 않습니다. 이 경우 Apple은이 파일을 사용하여 컴파일 대상을 구분하여 하나의 헤더 파일을 여러 대상에 사용하고 유용한 오류 및 경고를 내 보냅니다. –