typedef enum:哪些类可以访问它

Jos*_*ick 5 iphone xcode enums typedef objective-c

注意:我更改了名称,我实际上没有类型字母.

在我的根视图控制器.h中,我这样做

typedef enum {
a,
b,
c,
d,
e }letters;
Run Code Online (Sandbox Code Playgroud)

我还有其他几个类,其中大部分需要使用这种"字母"类型.在我的根视图控制器中,我使用"#import"MyClass.h"来导入类(因为我在rootViewController中创建了它的实例).但是,这不允许MyClass使用类型"letters".

我尝试在MyClass.h中添加"#import rootViewController.h",但是xcode开始给我错误(有时只是开启和关闭).做这个的最好方式是什么?我应该只将rootViewController导入到需要此"字母"类型的所有类中吗?是否可以让rootViewController导入MyClass和MyClass导入rootViewController?

Ano*_*mie 11

如果您只需要在连接一个类时使用枚举,请继续将其包含在该类的.h文件中.如果你需要在许多不同的地方使用枚举,你可能会更好地通过创建.h文件来声明枚举,并在任何需要的地方包含它.

您的错误可能来自缺少前方声明.如果RootViewController具有引用MyClass的ivars,属性或方法签名,那么@class MyClass;在编译器到达那些ivars,属性或方法签名之前,MyClass 需要有一个或一个@interface块可见.如果RootViewController.h和MyClass.h都包含另一个,那么如果首先导入RootViewController.h但是如果首先导入MyClass.h则失败.