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

Oli*_*ver 0 iphone response callback selector

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

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

}
Run Code Online (Sandbox Code Playgroud)

并调用实例方法:

[self.obj oneAction:@"a string" sendAnswerToObject:self]; // obj is a custom class
Run Code Online (Sandbox Code Playgroud)

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

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

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

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

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

Fel*_*ino 5

你的if应该是

if (listener != nil && ![listener respondsToSelector:@selector(callbackme:error:)]
Run Code Online (Sandbox Code Playgroud)

就像你创建的日志一样.