如果仅在某些iOS版本之上有条件地包含代码?

时间:2013-09-02 11:23:54

标签: ios objective-c

我有一段代码只适用于iOS 6或更高版本。

control.tintColor = [UIColor greenColor];

是否有可以使用的编译器指令,如#ifdef iOS6_or_greater

3 个答案:

答案 0 :(得分:17)

最好是检查功能,而不是iOS版本。

例如,您可以使用respondsToSelector来查看是否支持给定的方法。

[someObject respondsToSelector:@selector(someMethod)]

如果失败,那就有一个预处理器指令

#if __IPHONE_OS_VERSION_MIN_REQUIRED >= 60000
- (BOOL)supportedInterfaceOrientations
{
    return UIInterfaceOrientationMaskPortrait;
}
#endif

答案 1 :(得分:0)

你可以去找............

float currSysVerFloat = [[[UIDevice currentDevice] systemVersion]floatValue];
if (currSysVerFloat>=6.0) {
    isversion6=TRUE;
    control.tintColor = [UIColor greenColor];
    //This is iOS6 or greater
} else {
    //do nothing
    isversion6 = FALSE;
}

答案 2 :(得分:0)

我只是给你比较系统版本的基本代码

中编写以下代码
#define SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(v)  ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedAscending)

您的projectName-Prefix.pch,以便您可以随时随地访问它。

并将其应用为

等条件
if( SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"6") )
{

}
else
{

}