如何在IOS7中执行一段代码而不是在IOS6中?

嗨在过去,我开发了一个应用程序,支持IOS6.Now的时间来支持IOS7同样的应用程序也。 为了支持iOS6和IOS7的应用程序,我将每个组件的Y值增加了20 pixels

在这里,我正在通过使用[[[UIDevice CurrentDevice]SystemVersion] floatvalue];获取OS版本[[[UIDevice CurrentDevice]SystemVersion] floatvalue]; 方法。基于该操作系统版本,我正在改变每个组件的rect值。

为了处理StatusbarStyle我在IOS7中使用下面的方法

  1. [self setNeedsStatusBarAppearanceUpdate]; 2.-(UIStatusBarStyle)preferredStatusBarStyle; 

这些方法在IOS7中工作正常,但如果我在iOS6中安装应用程序,由于上述两种方法,应用程序崩溃。

所以现在我的要求是我必须隐藏或不执行IOS7相关的方法或IOS6设备的变化。借助这个实现,我希望我能解决这个问题。

即使我用了很less的方法来解决这个崩溃问题。我使用的方法是

 1. #if __IPHONE_OS_VERSION_MAX_ALLOWED== 70000 2.#if __IPHONE_OS_VERSION_MIN_REQUIRED==70000 

在创buildipa文件部署目标时,我设置的是6.0。 因为我必须支持IOS6和IOS7。

所以请帮我解决这个问题。 提前致谢。

使用NSFoundationVersionNumber条件来支持iOS 6

在这里输入图像说明

如果您需要为不同的应用程序版本加载不同的资源,并且您当前在Info.plist文件中标识了故事板或XIB文件,

您可以使用Foundation framework的版本来确定当前的系统版本,并在应用程序中加载适当的资源:didFinishLaunchingWithOptions:。 下面的代码显示了如何检查基础框架版本:

  if (floor(NSFoundationVersionNumber) <= NSFoundationVersionNumber_iOS_6_1) { // Load resources for iOS 6.1 or earlier } else { // Load resources for iOS 7 or later } 

看看你想要的同一件事情的最佳答案

iOS 7的状态栏回到iPhone 6应用程序的默认样式?

尝试检查这种情况:

 if ([self respondsToSelector:@selector(setNeedsStatusBarAppearanceUpdate)]) { // iOS 7 } else { // iOS 6 }