我们有错误:无法找到'ClassWhichUseMainScene'的协议声明[3]
我们创建了文件: Protocol.h
#import "ScoreSystem.h"
#import "OtherSystem"
#import "OtherSystem2"
@class ScoreSystem;
@protocol SceneDelegate <NSObject>
@property (nonatomic, readonly,retain) ScoreSystem* score;
@property (nonatomic, readonly,retain) OtherSystem* system;
@property (nonatomic, readonly,retain) OtherSystem2* system2;
@end
并在ScoreSystem.h中使用
#import "Protocol.h"
#import "OtherSystem"
#import "OtherSystem2"
@interface ScoreSystem: NSObject <SceneDelegate>
{
OtherSystem* system;
OtherSystem2* system2;
}
在ScoreSystem中,我们只想使用OtherSystem和OtherSystem2对象。在OtherSystem中使用ScoreSystem和OtherSystem2等。 我们希望为所有系统创建通用协议。
答案 0 :(得分:4)
两个头文件之间存在循环依赖关系(每个头文件都导入另一个)。不要在Protocol.h中导入ScoreSystem.h
,@class
前向声明就足够了。您的其他两个进口也是如此。
作为一般规则,我避免在其他类头文件中包含类头文件 - 我只是在任何地方使用@class并在实现文件中导入头文件。
答案 1 :(得分:0)
使用简单的导入语句解决了Mine问题
#import "ProtocolContainingFile.h"