枚举一般可以用于type切换,状态变化,以及样式组合等
场景1.只用一种类型不需要样式组合。(NS_ENUM,NS_OPTIONS底层会自适应)
推荐用
typedef NS_ENUM(NSUInteger,HuNavigationStatus)
{
HuNavigationStatusDefault, //默认显示,根据堆栈显示返回,显示title
HuNavigationStatusNone, //无导航条
HuNavigationStatusModel, //页面管理配置部分即返回,部分自定义及右侧
HuNavigationStatusCustom, //完全自定义
};
不推荐
typedef enum{
HuNavigationStatusDefault, //默认显示,根据堆栈显示返回,显示title
HuNavigationStatusNone, //无导航条
HuNavigationStatusModel, //页面管理配置部分即返回,部分自定义及右侧
HuNavigationStatusCustom, //完全自定义
}HuNavigationStatus;
场景2.样式可以组合使用
推荐用
/* 为股票的cell添加股票标记 */
typedef NS_OPTIONS(NSUInteger,HUStockCellMarkType)
{
HUStockCellMarkTypeEmpty = 0 << 1,//什么都不标记
HUStockCellMarkTypePosition = 1 << 1,//标记为持仓股票
HUStockCellMarkTypeHK = 1 << 2,//标记为港股
HUStockCellMarkTypeUS = 1 << 3,//美股
HUStockCellMarkTypeCulture = 1 << 4,//文交所
HUStockCellMarkTypeSHTong = 1 << 5,//沪港通沪股通
HUStockCellMarkTypeMarginType = 1 << 6,//融资融券
};
// HUNewSelfStockPage.m 使用类
//又是持仓股又是港股组合样式
HUStockCellMarkType markType = HUStockCellMarkTypePosition|HUStockCellMarkTypeHK;
//判断是否含有某个样式
if(markType & HUStockCellMarkTypeHK){
//是港股
}
switch特别说明,尽量不要用default,
原因:如果你加了deufault,你每次新加一种类型,编译器都不会报警告。这样不好。
一般这样用
typedef NS_ENUM(NSUInteger,HsChartType)
{
HsChartTypeLine, //折线图
HsChartTypeBar, //柱状图
// HsChartTypeLineAndBar, //折线柱状图
// HsChartTypeFallsBar, //瀑布柱状图
// HsChartTypeScatter, //散点图
// HsChartTypeHoldingRatio, //持股比例图
// HsChartTypeHorizonBar, //水平柱状图
// HsChartTypeProfitLine, //收益率曲线
};
switch (self.chartType) {
case HsChartTypeLine: // 画曲线
[self drawFuncLine];
break;
case HsChartTypeBar: // 画柱状图
[self drawBarChart];
break;
}
如果你发现本文对你有所帮助,如果你认为其他人也可能受益,请把它分享出去。