我正在使用MulticastDelegate类,它是 xmpp框架的一部分,并且被here它对我来说非常适合!但是我得到了警告:
'MulticastDelegate'可能无法响应 '的someMethod'
有没有办法避免这门课的警告? 提前谢谢。
答案 0 :(得分:2)
那是什么someMethod
?您是否添加了MulticastDelegate.h
标题?
更新: Aha,在这种情况下,您需要告诉编译器委托实现Notifier
接口:
#import "MulticastDelegate.h"
@protocol Notifier
- (void) someMethod;
@end
@interface Manager
{
MulticastDelegate <Notifier> delegate;
}
@end
这应该做。但是代码有点可疑吗?当delegate
为普通someMethod
时,您如何知道delegate
实施MulticastDelegate
?你在例子中省略了什么吗?
答案 1 :(得分:0)
只要您导入"MulticastDelegate.h"
并且someMethode是"MulticastDelegate.h"
中声明的类的公共接口的一部分,您就不应该收到此警告。
GCC仅在您向未公开宣布回复该邮件的对象发送邮件的情况下发出此警告。
答案 2 :(得分:0)
我有一个协议
@protocol Notifier
-(void) someMethod;
@end
和班级
#import "MulticastDelegate.h"
@interface Manager
{
MulticastDelegate delegate;
}
@end
实施文件
中的某个地方delegate= [[MulticastDelegate alloc] init];
.....
- (void)addDelegate:(id)_delegate
{
[delegate addDelegate:_delegate];
}
然后
[delegate someMethod];
上面的行会引起我在问题中提到的警告。
'MulticastDelegate'可能无法响应 '的someMethod'