4

如果不是,并且需要将其包含在单独的文件中(例如 MyEnums.h),是否每次 .m 或 .h 文件想要引用类型或其中一个值时都需要 #import MyEnums.h?


这是 MyClass.h 的示例代码:

#import <Foundation/Foundation.h>

// #1 placeholder

@interface MyClass : NSObject {
}

// #2 placeholder

- (void)sampleMethod:(MyEnum)useOfEnum;

// #3 placeholder

@end

这是我要定义的枚举:

typedef enum MyEnum {
    Value1,
    Value2
}

如果我尝试将我的枚举定义放在 #1 中,我会收到错误:在 'interface' 之前可能没有指定类型或存储类

如果我尝试将枚举定义放在 #2 中,我会收到错误:预期标识符或 '(' before 'end'

如果我尝试将我的枚举定义放在 #3 中,我会在 'MyEnum' 之前得到 error: expected ')'。这是抱怨参数“useOfEnum”,因为它的类型尚未定义。


那么这可以做到吗?或者什么是最好的方法来做到这一点并限制所需的#imports 数量?

4

2 回答 2

5

它应该在#1位置工作,但我认为你需要这样写:

typedef enum {
    Value1,
    Value2
} MyEnum;

要正常工作。

更新:我已经确认了这一点(至少在 Xcode 3.2 中)。上面显示的语法编译没有错误。

于 2009-07-30T00:46:06.947 回答
1

看起来您只是缺少 ; 在 typedef 枚举声明的末尾。

于 2009-07-30T03:14:13.743 回答