协议方法相互依赖

Ato*_*mix 0 protocols objective-c

我遇到了这种奇怪的情况,我有两个协议,两个方法的参数都必须符合其他协议.听起来令人困惑,所以有些代码:

@protocol ProtocolB <NSObject>
@required

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

@end



@protocol ProtocolA <NSObject>
@required

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

@end
Run Code Online (Sandbox Code Playgroud)

编译器说:"找不到......的协议声明".根据首先使用的协议,它可以是ProtocolA或ProtocolB.将它们放在不同的文件中似乎并没有解决这个问题.

如果没有(主要的,可能复杂的)重新设计,我怎么能做到这一点?

Pra*_*tha 5

协议的前向声明可能会.添加@protocol ProtocolA; 在ProtocolB之前