码迷,mamicode.com
首页 > 其他好文 > 详细

让枚举值与字符串一一对应

时间:2015-06-13 06:16:13      阅读:165      评论:0      收藏:0      [点我收藏+]

标签:

让枚举值与字符串一一对应

技术分享

 

说明

统一管理字符串,可以用数值来代表字符串,其目的就是为了增加代码的可读性.

 

源码

https://github.com/YouXianMing/StringAndValue

//
//  StringAndValue.h
//  StringAndValue
//
//  Created by YouXianMing on 15/6/9.
//  Copyright (c) 2015年 YouXianMing. All rights reserved.
//

#import <Foundation/Foundation.h>

#define E_STRING(value)   [StringAndValue stringValueWithEStringAndValue:(value)]
#define E_VALUE(value)    [StringAndValue numberValueWithEStringAndValue:(value)]


typedef enum : NSUInteger {
    
    EUserSucess,
    EUserError,
    
} EStringAndValue;


@interface StringAndValue : NSObject

/**
 *  获取数值
 *
 *  @param value 枚举值
 *
 *  @return 数值
 */
+ (EStringAndValue)numberValueWithEStringAndValue:(EStringAndValue)value;

/**
 *  获取数值对应的字符串
 *
 *  @param value 枚举值
 *
 *  @return 字符串
 */
+ (NSString *)stringValueWithEStringAndValue:(EStringAndValue)value;

@end
//
//  StringAndValue.m
//  StringAndValue
//
//  Created by YouXianMing on 15/6/9.
//  Copyright (c) 2015年 YouXianMing. All rights reserved.
//

#import "StringAndValue.h"

static NSDictionary *_dataStringAndValue = nil;

@implementation StringAndValue

+ (void)initialize {
    
    if (self == [StringAndValue class]) {
        
        _dataStringAndValue = @{@(EUserSucess) : @"成功",
                                @(EUserError)  : @"失败",};
    }
}

+ (EStringAndValue)numberValueWithEStringAndValue:(EStringAndValue)value {

    return value;
}

+ (NSString *)stringValueWithEStringAndValue:(EStringAndValue)value {
    
    return _dataStringAndValue[@(value)];
}

@end
//
//  ViewController.m
//  StringAndValue
//
//  Created by YouXianMing on 15/6/9.
//  Copyright (c) 2015年 YouXianMing. All rights reserved.
//

#import "ViewController.h"
#import "StringAndValue.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];

    NSLog(@"%@", E_STRING(EUserError));
    NSLog(@"%lu", (unsigned long)EUserError);
}

@end

 

重要的地方

技术分享

 

让枚举值与字符串一一对应

标签:

原文地址:http://www.cnblogs.com/YouXianMing/p/4570834.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!