后台返枚舉數據給app,app需要對不同枚舉轉換成字符串顯示。
一般想到方法用 switch 根據不同枚舉變量返回不同字符串,結果就是判斷代碼寫得很長,不優雅。更簡便方式有如下:
typedef NS_ENUM(NSInteger, StatusType) { StatusTypeNormal = 0, // 正常 StatusTypeConnecting = 1, // 連接中 StatusTypeSuccess = 2, // 成功 StatusTypeFail = 5 // 失敗 }; const NSString *StatusTypeStringMap[] = { [StatusTypeNormal] = @"正常", [StatusTypeConnecting] = @"連接中", [StatusTypeSuccess] = @"成功", [StatusTypeFail] = @"失敗" };
使用的時候直接這樣調用:
StatusType type = StatusTypeFail; NSLog(@"%@", StatusTypeStringMap[type]); // NSLog: 失敗