NSDictionary转化为NSData
之前自己写了NSDictionary转化为NSData的一种方法如下
NSMutableData *data = [[NSMutableData alloc] init];
NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData:data];
[archiver encodeObject:messageDic forKey:@"KeyValue"];
[archiver finishEncoding];
需要设置一个key进行存档,要得到原字典时需用同样的key解档
NSKeyedUnarchiver *unarchiver = [[NSKeyedUnarchiver alloc] initForReadingWithData:data];
NSDictionary *myDictionary = [unarchiver decodeObjectForKey:@"KeyValue"];
[unarchiver finishDecoding];
然而这样设置key存取值时,如果并发进行,会导致数据混乱,如果设置了不同的key,解档时也很麻烦用哪个key。
然后在github找了一个第三方库JSONKit,只有一个类,可以完成所有类型的数据之间的转换,非常实用,现在的项目我也用上了这个库,导入头文件#import "JSONKit.h"即可,需注意他用的是非ARC。
NSDictionary转化为NSData的代码如下:
NSData *data = [dic JSONData];
NSData转化为NSDictionary的代码如下:
NSDictionary *myDictionary = [data objectFromJSONData];
其他的类型数据转化为NSData类似,请查看API,就是这么简单。