在Objective-C类中,我有一个@private ivar,它使用以下形式的枚举:
typedef NS_ENUM(NSInteger, PlayerStateType) {
PlayerStateOff,
PlayerStatePlaying,
PlayerStatePaused
};
但是,我将此定义包含在该类的头文件中(因为它已在其中使用)。这有效地使类型公开,这不是我的意图。如何将此枚举类型设为私有?
答案 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。