说明
统一管理字符串,可以用数值来代表字符串,其目的就是为了增加代码的可读性.
源码
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
重要的地方
时间: 2024-10-12 17:17:33