[英]How to serialise ObjC enums in JSON?
我想将我的应用程序的皮肤设置存储在json文件中。 我如何存储颜色/样式等的枚举值,然后从字符串中转换回来? 我如何存储MKPinAnnotationColorRed或UITableViewStyleGrouped?
如果它只是存储整数等价物的问题,我就可以了,而不是实际存储枚举字符串值。
“我想将我的应用程序皮肤设置存储在json文件中” - 这是iPhone上的错误方法。 操作系统提供NSUserDefaults
类,可以为您处理所有详细信息。
例如,要存储枚举值(实际上是整数值):
[[NSUserDefaults standardUserDefaults] setInteger: annotationColor
forKey: @"SomeKey"];
[[NSUserDefaults standardUserDefaults] synchronize];
您还可以轻松存储和检索序列化对象或本机类型(数组,字母,数字,字符串)。
简短的回答是,你做不到。
除非你做以下几件事之一:
您必须在枚举和字符串之间创建一些显式映射。 一种方法如下:
#define ENTRY(x) [NSNumber numberWithInt:x], @#x
NSDictionary* dict = [NSDictionary dictionaryWithObjectsAndKeys:
ENTRY(enumOne),
ENTRY(enumTwo),
ENTRY(enumThree),
nil];
#undef ENTRY
NSNumber* index = [dict objectForKey:@"enumOne"]);
请注意,这是通用方法,如果您具有等距的枚举值,则不必存储其数值,而是可以使用例如NSArray
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.