我在Objective-C程序中遇到enum可见性问题.我有两个头文件,一个定义了一个typedef enum.另一个文件需要使用typedef'd类型.
在直接C中,我只是#include其他头文件,但在Objective-C中,建议不要#import在头文件之间使用,而是@class根据需要使用前向声明.但是,我无法弄清楚如何转发声明枚举类型.
我不需要实际的枚举值,除了相应的.m实现文件,我可以安全地#import离开.那么如何才能typedef enum在标题中识别?
我很好奇当typedefing一个枚举或结构时,这里的区别是什么.这两个块之间在语义上有什么区别吗?
这个:
typedef enum { first, second, third } SomeEnum;
Run Code Online (Sandbox Code Playgroud)
还有这个:
enum SomeEnum { first, second, third };
typedef enum SomeEnum SomeEnum;
Run Code Online (Sandbox Code Playgroud)
结构相同的交易.我已经看到两者都在使用,他们似乎都在C或Objective-C中做同样的事情.是否存在真正的差异,或者只是偏好您可以使用哪种风格?