#ifdef #else #endifselectiOS sdk版本和function?

我正在build立一个黑暗主题的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 …方法。

非常感谢!!!!

虽然我不是100%确定,但我可以在不违反NDA的情况下完全回答这个问题,我会尽我所能为您指出正确的方向。

您需要使用__IPHONE_*

 #if __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_6_0 // iOS 6+ code here #else // Pre iOS 6 code here #endif 

请注意, #if#ifdef将决定编译的代码,这不是一个运行时检测机制。

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

看看respondsToSelector

  [delegate respondsToSelector:@selector(myMethod:)] 
Interesting Posts