私人Enum宣言

时间:2012-11-19 06:37:44

标签: objective-c ios xcode

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

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

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

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

在.m文件中定义它&在.m文件中声明控制器类别中的privare ivar。要了解控制器类别,请查看Difference between @interface definition in .h and .m file