Как условно включить код только в том случае, если выше определенной версии 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 { }
Ответ 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 { }