如何隐藏特定IOS版本中的代码块

时间:2013-09-27 06:02:51

标签: ios

您好,我想在我的一个项目中隐藏一段代码。 Hidding意味着我不想在像IOS6这样的IOS版本中执行代码块,并希望在IOS7中的另一个版本中执行。为什么我想这样做是因为任何IOS开发人员都知道一个普遍的事实是苹果在新版本中引入新功能的时代由于SDk可能会有变化。如果我们想在旧版本编译器中运行更新版本的应用程序会产生错误,因为在旧版本中将无法使用新版本相关的方法。因此,为了避免这些错误,我需要一种方法来隐藏在旧版本中运行应用程序时与新版本相关的代码块。

所以,如果有人知道,请告诉我。谢谢。

4 个答案:

答案 0 :(得分:0)

使用respondsToSelector方法或使用[[UIDevice currentDevice] systemVersion]检查系统版本。

respondsToSelectorNSObject协议提供的方法 1。

if ([str respondsToSelector:@selector(sizeWithFont:)]) {
            //do something
        }
    else{
    //do other thing
    }

2

 NSComparisonResult order = [[UIDevice currentDevice].systemVersion compare: @"6.0" options: NSNumericSearch];
    if (order == NSOrderedSame || order == NSOrderedDescending) {
        // OS version >= 6.0
    } else {
        // OS version < 6.0
    }

答案 1 :(得分:0)

您可以执行以下操作:

if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7)
{
    // your code
}

答案 2 :(得分:0)

您始终可以检查操作系统的版本。看看this question。它会解决你的问题。

答案 3 :(得分:0)

您可以使用UIDevice Class的systemVersion属性。

像:

if ([[[UIDevice currentDevice] systemVersion] floatValue] <= 6 )
{
    if ([yourObject respondsToSelector:@selector(yourMethod)])
    {
       [yourObject performSelector:@selector(yourMethod)];
    }
}