0

嗨,我想在我的一个项目中隐藏一段代码。隐藏意味着我不想在一个 IOS 版本(如 IOS6)中执行代码块,而希望在另一个版本(如 IOS7)中执行。为什么我想这样做是因为任何 IOS 开发人员都知道一个普遍的真理,这是大多数Apple 在新版本中引入新功能的时间,因为 SDk 可能会发生变化。如果我们想在旧版本中运行新版本的应用程序,编译器会出错,因为新版本相关的方法在旧版本中不可用。因此,为了避免这些错误,我需要一种方法来隐藏与新版本相关的代码块,同时在旧版本中运行应用程序。

所以如果有人知道,请告诉我。在此先感谢。

4

4 回答 4

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
    }
于 2013-09-27T06:07:15.813 回答
0

您可以执行以下操作:

if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7)
{
    // your code
}
于 2013-09-27T06:07:30.490 回答
0

您可以随时检查操作系统的版本。看看这个问题。它会解决你的问题。

于 2013-09-27T06:07:37.867 回答
0

您可以使用UIDevicesystemVersion 的属性。

喜欢:

if ([[[UIDevice currentDevice] systemVersion] floatValue] <= 6 )
{
    if ([yourObject respondsToSelector:@selector(yourMethod)])
    {
       [yourObject performSelector:@selector(yourMethod)];
    }
}
于 2013-09-27T06:20:12.307 回答