Objective c 如何在标头中声明未知枚举?
我知道您可以使用Objective c 如何在标头中声明未知枚举?,objective-c,declaration,Objective C,Declaration,我知道您可以使用@class单词在objective-c头文件中声明未知类。是否有方法在头类中声明未知的enum 例如,是否有方法防止someEnum的编译错误 #import <Foundation/Foundation.h> @class UnknownClass; @interface Foo @property (nonatomic, strong) UnknownClass *someObject; @property (nonatomic) UnknownEnum
@class
单词在objective-c头文件中声明未知类。是否有方法在头类中声明未知的enum
例如,是否有方法防止someEnum
的编译错误
#import <Foundation/Foundation.h>
@class UnknownClass;
@interface Foo
@property (nonatomic, strong) UnknownClass *someObject;
@property (nonatomic) UnknownEnum someEnum;
@end
#导入
@类未知类;
@接口Foo
@属性(非原子,强)未知类*someObject;
@性质(非原子)未知数;
@结束
如果出于某种原因,您不想为声明枚举的标头添加\import
或\include
指令,则只需将其作为其他内容键入即可。所有enum
类型都仅限于某种形式的int
。只要声明它是相似的。如果您知道您将得到0或更高,您可以使用NSUinteger
。如果您知道将得到负数,请使用NSInteger
。
其中任何一项都应足以用于您的财产申报
也就是说,就使用枚举成员的值或将该值赋给变量而言,命名枚举只不过是typedef
另一个选项是执行#ifndef
来定义自身相同类型的def。是,您可以向前声明枚举
:
enum things;
然而,我认为如果您开始使用编译器标志,如-pedantic
,您将遇到问题,因为我不相信这是ISO标准的一部分。我还认为,就像前向声明一个类一样,您可能只能使用指向它的指针,因为它的大小未知
我个人从来没有这样做过,我更喜欢包含定义enum
的头文件(而且我认为声明enum
并不比包含文件更干净)
一句话:不用麻烦了为什么不导入包含未知元素的文件?我当然可以,但我正在尽量保持头文件的干净。如果我不需要为类定义导入,我希望我不需要为新的数据类型导入。我试图搜索答案,但没有意识到我可以使用“forward declare”关键字。这意味着您将丢失对分配给属性的值的任何编译器检查。因此,“如果出于某种原因”