相互依赖的协议方法

Protocol methods depending on each other

我 运行 遇到了这种奇怪的情况,我有两个协议,并且都有方法的参数必须符合另一个协议。听起来很混乱,所以这里是一些代码:

@protocol ProtocolB <NSObject>
@required

-(void)methodB:(id<ProtocolA>)parameter;

@end



@protocol ProtocolA <NSObject>
@required

-(void)methodA:(id<ProtocolB>)parameter;

@end

编译器说:"Cannot find protocol declaration for ..."。根据先出现的协议,它是 ProtocolA 或 ProtocolB。 将它们放在不同的文件中似乎并不能解决这个问题。

关于如何在不进行(主要且可能复杂的)重新设计的情况下做到这一点的任何想法?

协议的前向声明可以。添加@protocol ProtocolA;在 ProtocolB

之前