枚舉一般可以用于type切換,狀態(tài)變化,以及樣式組合等
場景1.只用一種類型不需要樣式組合。(NS_ENUM,NS_OPTIONS底層會自適應(yīng))
推薦用
typedef NS_ENUM(NSUInteger,HuNavigationStatus)
{
HuNavigationStatusDefault, //默認(rèn)顯示评甜,根據(jù)堆棧顯示返回,顯示title
HuNavigationStatusNone, //無導(dǎo)航條
HuNavigationStatusModel, //頁面管理配置部分即返回仔涩,部分自定義及右側(cè)
HuNavigationStatusCustom, //完全自定義
};
不推薦
typedef enum{
HuNavigationStatusDefault, //默認(rèn)顯示忍坷,根據(jù)堆棧顯示返回,顯示title
HuNavigationStatusNone, //無導(dǎo)航條
HuNavigationStatusModel, //頁面管理配置部分即返回红柱,部分自定義及右側(cè)
HuNavigationStatusCustom, //完全自定義
}HuNavigationStatus;
場景2.樣式可以組合使用
推薦用
/* 為股票的cell添加股票標(biāo)記 */
typedef NS_OPTIONS(NSUInteger,HUStockCellMarkType)
{
HUStockCellMarkTypeEmpty = 0 << 1,//什么都不標(biāo)記
HUStockCellMarkTypePosition = 1 << 1,//標(biāo)記為持倉股票
HUStockCellMarkTypeHK = 1 << 2,//標(biāo)記為港股
HUStockCellMarkTypeUS = 1 << 3,//美股
HUStockCellMarkTypeCulture = 1 << 4,//文交所
HUStockCellMarkTypeSHTong = 1 << 5,//滬港通滬股通
HUStockCellMarkTypeMarginType = 1 << 6,//融資融券
};
// HUNewSelfStockPage.m 使用類
//又是持倉股又是港股組合樣式
HUStockCellMarkType markType = HUStockCellMarkTypePosition|HUStockCellMarkTypeHK;
//判斷是否含有某個樣式
if(markType & HUStockCellMarkTypeHK){
//是港股
}
switch特別說明,盡量不要用default承匣,
原因:如果你加了deufault,你每次新加一種類型锤悄,編譯器都不會報(bào)警告韧骗。這樣不好。
一般這樣用
typedef NS_ENUM(NSUInteger,HsChartType)
{
HsChartTypeLine, //折線圖
HsChartTypeBar, //柱狀圖
// HsChartTypeLineAndBar, //折線柱狀圖
// HsChartTypeFallsBar, //瀑布柱狀圖
// HsChartTypeScatter, //散點(diǎn)圖
// HsChartTypeHoldingRatio, //持股比例圖
// HsChartTypeHorizonBar, //水平柱狀圖
// HsChartTypeProfitLine, //收益率曲線
};
switch (self.chartType) {
case HsChartTypeLine: // 畫曲線
[self drawFuncLine];
break;
case HsChartTypeBar: // 畫柱狀圖
[self drawBarChart];
break;
}
如果你發(fā)現(xiàn)本文對你有所幫助零聚,如果你認(rèn)為其他人也可能受益袍暴,請把它分享出去。