#ifdef #else #endif选择iOS sdk版本和功能?

HYC*_*HYC 6 sdk objective-c ifdefine ios

我正在建立一个黑暗的主题iOS 6和7应用程序.我知道我可以打电话[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];让iOS 7状态栏适合深色主题应用程序.

问题是我要将我的应用程序提交到App Store,目前Xcode 5尚未准备就绪,所以我必须使用Xcode 4.6.x来完成这项任务.但是使用Xcode 4.6,我无法从iOS 7编译新方法.我想我必须做一些像""如果ios7""那么做[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];并重新定位我的应用程序窗口.

我试图用这样做#ifdef... #else...此代码是[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];内部的viewDidLoad.

任何人都可以帮助理解如何使用#ifdef...在某些函数中的方法.

非常感谢!!!!

Ste*_*ord 21

虽然我不是百分百肯定我可以在不违反保密协议的情况下完全回答这个问题,但我会尽力指出正确的方向.

您需要__IPHONE_*在Availability.h中使用#defines

#if __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_6_0
  // iOS 6+ code here
#else
  // Pre iOS 6 code here
#endif
Run Code Online (Sandbox Code Playgroud)

请注意#if#ifdef确定编译的代码,它不是运行时检测机制.

您可以使用"快速打开"并键入"可用性"轻松访问Availability.h.