A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

枚举类型中自定义的文字如何打印?

3 个回复

倒序浏览
貌似不行吧,本质就是int,只能自己规定根据数字打印字符串吧= =
回复 使用道具 举报
应该不行
回复 使用道具 举报
我只想到两种方式定义的枚举
  1. typedef NS_ENUM(NSInteger, kType) {
  2.     kTypeString = 0,
  3.     kTypeNumber,
  4.     kTypeArray,
  5.     kTypeBool,
  6. };
复制代码

  • 自定switch
  1. -(NSString*) enumToString:(kType)type{
  2.     NSString* enumStr = nil;
  3.     switch (type) {
  4.         case kTypeString:
  5.             enumStr = @"kTypeString";
  6.             break;
  7.         case kTypeNumber:
  8.             enumStr = @"kTypeNumber";
  9.             break;
  10.         case kTypeArray:
  11.             enumStr = @"kTypeArray";
  12.             break;
  13.         case kTypeBool:
  14.             enumStr = @"kTypeBool";
  15.             break;
  16.         default:
  17.             break;
  18.     }
  19.     return enumStr;
  20. }
复制代码
  • 自定Dictionary
  1. -(NSDictionary*) enumDataSource{
  2.     return @{@(kTypeString):@"kTypeString",
  3.              @(kTypeNumber):@"kTypeNumber",
  4.              @(kTypeArray):@"kTypeArray"
  5.              @(kTypeBool):@"kTypeBool"};
  6. }

  7. -(NSString*) getEnumToStringFromDic:(kType)type{
  8.     return [[self enumDataSource] objectForKey:@(type)];
  9. }
复制代码





回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马