注意:我更改了名称,我实际上没有类型字母。
在我的根视图控制器.h中,我做
typedef enum {
a,
b,
c,
d,
e }letters;
我还有其他几个类,其中大部分都需要使用这个“字母”类型。在我的根视图控制器中,我使用“#import”MyClass.h“来导入类(因为我在rootViewController中创建了它的实例)。但是,这不允许MyClass使用”字母“类型。
我尝试在MyClass.h中添加“#import rootViewController.h”,但是xcode开始给我错误(有时只是开启和关闭)。做这个的最好方式是什么?我应该只将rootViewController导入到需要此“字母”类型的所有类中吗?是否可以让rootViewController导入MyClass和MyClass导入rootViewController?
答案 0 :(得分:11)
如果您只需要在连接一个类时使用枚举,请继续将其包含在该类的.h文件中。如果你需要在许多不同的地方使用枚举,你可能会更好地通过创建一个.h文件来声明枚举,并在任何你需要的地方包含它。
您的错误可能来自错过的前方声明。如果RootViewController具有引用MyClass的ivars,属性或方法签名,那么在编译器获取那些ivars,属性或方法签名之前,需要MyClass的@class MyClass;
或@interface块可见。如果RootViewController.h和MyClass.h都包含另一个,那么如果首先导入RootViewController.h但是如果首先导入MyClass.h则会失败。
答案 1 :(得分:0)
typedef enum
有点像#define
,有一些错误检查(仅限于整数类型)。
即。关于它可能导致问题的唯一方法是,如果你搞砸了语法或声明具有相同名称的东西(重新声明错误)。
除此之外,不太可能是你的问题。
如果没有看到错误消息,就无法多说。