我正在尝试使用 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 没有返回零,还有什么我可以做的事情来完成我想要做的事情吗?