我正在尝试使用 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,我还能做些什么来完成我想要做的事情?

objective-c - 关于 NSClassFromString/检查手势识别器的困惑-LMLPHP

最佳答案

来自 docs

关于objective-c - 关于 NSClassFromString/检查手势识别器的困惑,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9134747/

10-09 06:48