3

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

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

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

4

2 回答 2

6

添加我的评论作为答案。

您可以将其添加到您的 .m 类中,以便在导入时不会与其他类共享。您可以将其添加到您的导入语句下方。如果此类型的参数仅在此 .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
于 2012-11-19T06:54:04.123 回答
1

在 .m 文件中定义它并在 .m 文件的控制器类别中声明您的 privare ivar。要了解控制器类别,请查看.h 和 .m 文件中的 @interface 定义之间的区别

于 2012-11-19T06:49:09.823 回答