iPhone - respondToSelector返回NO但实现了方法

时间:2011-06-16 23:26:03

标签: iphone callback response selector

我有一个声明并实现它的类:

- (void) callbackme:(OneClass*)p1 error:(NSString*)errStr {

}

并在实例方法中调用:

[self.obj oneAction:@"a string" sendAnswerToObject:self]; // obj is a custom class

在自定义类的oneAction方法中,我有:

- (void) oneAction:(NSString*)p1 sendAnswerToObject:(id)listener {

     if (listener != nil && ![listener respondsToSelector:@selector(callbackme::)]) 
             NSLog(@"Listener does not respond to selector 'callbackme:error:'");
}

NSLog被触发,我不明白为什么?

侦听器必须是id,因为它可以是任何类的任何对象实例。

1 个答案:

答案 0 :(得分:5)

你的if应该是

if (listener != nil && ![listener respondsToSelector:@selector(callbackme:error:)]

就像你创建的日志一样。