Как условно включить код только в том случае, если выше определенной версии iOS?
У меня есть часть кода, которая работает только на iOS 6 или выше.
control.tintColor = [UIColor greenColor];
Есть ли готовая к использованию директива компилятора, например #ifdef iOS6_or_greater
?
Ответы
Ответ 1
Лучше всего, если вы проверяете функциональность, а не версию iOS.
Например, вы можете использовать responsesToSelector, чтобы узнать, поддерживается ли данный метод.
[someObject respondsToSelector:@selector(someMethod)]
В противном случае существует директива препроцессора
#if __IPHONE_OS_VERSION_MIN_REQUIRED >= 60000
- (BOOL)supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskPortrait;
}
#endif
Ответ 2
вы можете пойти для этого...........
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;
}
Ответ 3
Я просто даю вам базовый код сравнения версии системы
Введите следующий код в
#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
{
}