如何在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 }