我有一个声明并实现它的类:
- (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,因为它可以是任何类的任何对象实例。
答案 0 :(得分:5)
你的if应该是
if (listener != nil && ![listener respondsToSelector:@selector(callbackme:error:)]
就像你创建的日志一样。