我正在尝试使用 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,我还能做些什么来完成我想要做的事情?
最佳答案
来自 docs
关于objective-c - 关于 NSClassFromString/检查手势识别器的困惑,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9134747/