我有一个类,它充当转发代表的通用代理。通过实现respondsToSelector
,forwardInvocation
我可以使用这个类来转发选择器,这些选择器将被发送给各种 UI 控件的委托。
问题是当我使用这个类时,我得到一个编译器警告。例如,如果我使用它将消息转发到 UITableViewDelegate:
DelegateForwarder* _forward = [[DelegateForwarder alloc] init];
_tableView.delegate = _forward;
我收到编译器警告:
Assigning to id<UITableViewDelegate> from incompatible type 'DelegateForwarder'
我知道生成警告是因为 DelegateForwarder 不采用UITableViewDelegate
委托,但我不希望它这样做 - 因为它提供的转发机制是完全通用的。
尽管有警告,但我的代码按预期运行。
我可以做些什么来以某种方式向此类的编译器和用户表明它使用消息转发,因此它不采用特定协议的事实不是问题吗?