NSRegularExpressionSearch
компилируется только тогда, когда
#if __IPHONE_3_2 <= __IPHONE_OS_VERSION_MAX_ALLOWED
Поэтому вам необходимо проверить, что текущая операционная система имеет версию 3.2 или более позднюю.
if ( [[[UIDevice currentDevice] systemVersion] doubleValue] >= 3.2 ) {}
В других случаях вы можете проверить, чтокласс существует или экземпляр отвечает на селектор, но NSString не изменился, кроме этого перечисления.Например, если существует перечисление, связанное с распознавателями жестов, вы можете использовать одно из следующих:
if ( NSClassFromString( @"UIGestureRecognizer" ) != nil ) {}
if ( [someView respondsToSelector:@selector(gestureRecognizers)] ) {}
В другом примере посмотрите, как Apple обрабатывает макрос UI_USER_INTERFACE_IDIOM.
Редактировать:
Номер версии для проверки, кроме версии системы: NSFoundationVersionNumber
.
if ( NSFoundationVersionNumber > NSFoundationVersionNumber_iPhoneOS_3_1 ) {}
Это более тесно связано с NSString, но в заголовках 3.2 нет константы для 3.2.