7

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

问题是我要将我的应用程序提交到 App Store,而目前 Xcode 5 还没有准备好,所以我必须使用 Xcode 4.6.x 来完成这项任务。但是使用 Xcode 4.6,我无法从 iOS 7 编译新方法。我想我必须做一些类似 ""if ios7"" 的事情,然后[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];重新定位我的应用程序窗口。

我正在尝试用#ifdef……来做这件事#else……这段代码[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];viewDidLoad.

任何人都可以帮助了解如何#ifdef在某些功能中使用 ... 方法。

非常感谢!!!!

4

2 回答 2

22

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

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

#if __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_6_0 && defined(__IPHONE_6_0)
  // iOS 6+ code here
#else
  // Pre iOS 6 code here
#endif

请注意,#if它将确定编译#ifdef了什么代码,它不是运行时检测机制。

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

于 2013-08-23T15:37:08.230 回答
2

看看 respondsToSelector

 [delegate respondsToSelector:@selector(myMethod:)]
于 2013-08-23T15:55:45.240 回答