私人Enum宣言

Mr.*_*ith 3 xcode objective-c ios

在Objective-C类中,我有一个@private ivar,它使用以下形式的枚举:

typedef NS_ENUM(NSInteger, PlayerStateType) {
    PlayerStateOff,
    PlayerStatePlaying,
    PlayerStatePaused
};
Run Code Online (Sandbox Code Playgroud)

但是,我将此定义包含在该类的头文件中(因为它已在其中使用).这有效地使类型公开,这不是我的意图.如何将此枚举类型设为私有?

iDe*_*Dev 6

添加我的评论作为答案.

您可以在.m类中添加它,以便在导入时不会与其他类共享.您可以在导入语句下面添加它.如果此类型的params仅在此.m类中使用,则可以在此.m文件中声明该类型.

你的.m类看起来像,

typedef NS_ENUM(NSInteger, PlayerStateType) {
    PlayerStateOff,
    PlayerStatePlaying,
    PlayerStatePaused
};

@interface ViewController () //Use an extension like this in .m class

@property (nonatomic) PlayerStateType param;

@end
Run Code Online (Sandbox Code Playgroud)

  • 啊,ty.我不知道多个文件可以添加到`@interface ViewController()`ivars.我已经添加了类别和没有类别的方法,但不知道ivars工作了).我想如果从类别中添加ivars就不起作用了. (2认同)