【发布时间】:2013-05-24 23:04:11
【问题描述】:
我的类标头找不到在“外部”定义的另一个标头中声明的协议。 结构如下:
x1.h 有协议
x2.h 导入 x1.h
x3.h 导入 x2.h
问题是,x3.h 找不到协议。
我想避免在 x3.h 中导入 x1.h 以减少重复
错误是“Parse Issue Expected a type”
我有一个运行状态。但是在我将一些#import 从 x3.m 复制到 x2.h 之后,出现了 100 个未知类型和解析问题的错误。即使在任意类中,例如(y42.m) 是错误。奇怪的是,y42.m 类导入 x3.h 却不知道 x3。
感谢阅读!
更多信息:x1.h 内容
@protocol aDelegate <NSObject>
- (void)callback;
@end
x2.h 内容
#import "x1.h"
typedef enum {
kOne,
kTwo,
kThree,
}States;
x3.h 内容
#import "x2.h"
@interface x3 : NSObject <aDelegate>
{
States anyState;
}
@end
状态未知,aDelegate 未知。原因也不清楚。
【问题讨论】:
-
坦率地说,我不太明白。你说你没有找到协议声明,但 x1.h “有协议”,你相信你可以通过将 x1.h 包含到 x2.h 中来修复它(你有充分的理由想要避免)。但是如果协议在x1.h中,为什么找不到呢?
-
可能会提供编译器错误和代码,以便我们准确了解您在做什么。
标签: objective-c protocols