在一个 Objective-C 类中,我有一个 @private ivar,它使用以下形式的枚举:
typedef NS_ENUM(NSInteger, PlayerStateType) {
PlayerStateOff,
PlayerStatePlaying,
PlayerStatePaused
};
但是,我将此定义包含在该类的头文件中(因为它已在其中使用)。这有效地使类型公开,这不是我想要的。如何将此枚举类型设为私有?
在一个 Objective-C 类中,我有一个 @private ivar,它使用以下形式的枚举:
typedef NS_ENUM(NSInteger, PlayerStateType) {
PlayerStateOff,
PlayerStatePlaying,
PlayerStatePaused
};
但是,我将此定义包含在该类的头文件中(因为它已在其中使用)。这有效地使类型公开,这不是我想要的。如何将此枚举类型设为私有?
添加我的评论作为答案。
您可以将其添加到您的 .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
在 .m 文件中定义它并在 .m 文件的控制器类别中声明您的 privare ivar。要了解控制器类别,请查看.h 和 .m 文件中的 @interface 定义之间的区别。