respondsToSelector始终为setPinTintColor返回NO

时间:2015-09-21 17:38:46

标签: objective-c xcode ios9

使用iOS 9,您现在可以设置自定义地图引脚颜色。因为我有一个从8.x及以上运行的应用程序,如果他们想要自定义引脚颜色,我需要确保用户至少拥有iOS 9。我正在进行如下检查,这在iOS 9下总是产生NO。

-(BOOL)isVersionHigherThan_8_4
{
    MKPinAnnotationView *pinTest;

    if ([pinTest respondsToSelector:@selector(setPinTintColor:)])
        return YES;
    else
        return NO;

}

我知道setPinTintColor正在运行,因为我可以设置并在iOS 9下使用它。为什么即使在版本9下该测试也会产生NO?

1 个答案:

答案 0 :(得分:1)

MKPinAnnotationView *pinTest;

pinTest为nil,向nil发送消息将产生:nil,0或NO。

首先实例化对象。