Я пытаюсь использовать NSClassFromString, чтобы предотвратить запуск блока кода на устройствах с iOS 3.2. Кодовый блок, о котором идет речь, выглядит следующим образом:
if (NSClassFromString(@"UITapGestureRecognizer"))
{
UITapGestureRecognizer *tap = [[[UITapGestureRecognizer alloc] initWithTarget:self
action:@selector(dismissKeyboard)] autorelease];
[tap setCancelsTouchesInView:NO];
[[self view] addGestureRecognizer:tap];
}
Я делаю это, потому что в документации Apple говорится, что UITapGestureRecognizer несовместим с установками до 3.2. https://developer.apple.com/library/ios/#documentation/uikit/reference/UITapGestureRecognizer_Class/Reference/Reference.html
Первоначально я думал, что использование NSClassFromString вернет nil, когда я запустил его на этом устройстве, но это не так. Утверждение верно, и код выполняется. (Интересное примечание, код вроде работает на установке, предшествующей 3.2.)
В любом случае, я хотел бы знать, почему NSClassFromString НЕ возвращает nil, и есть ли что-то, что я могу сделать иначе, чтобы выполнить то, что я пытаюсь сделать?