我有一个声明并实现这个的类:
- (void) callbackme:(OneClass*)p1 error:(NSString*)errStr {
}
并且调用一个实例方法:
[self.obj oneAction:@"a string" sendAnswerToObject:self]; // obj is a custom class
在自定义类的一个Action方法中,我有:
- (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,因为它可以是任何类的任何对象实例。
您的if应该是
if (listener != nil && ![listener respondsToSelector:@selector(callbackme:error:)]
就像您创建的日志一样。