将NSDictionary对象转换为NSData对象,反之亦然

Aja*_*007 16 objective-c nsdictionary nsdata ios

我必须转换一个NSDictionary对象,NSData并且我必须NSDictionaryNSData对象中获取相同的内容.我该怎么办呢?

小智 32

使用NSKeyedArchiver

将NSDictionary转换为NSData

NSMutableData *data = [[NSMutableData alloc]init];
NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc]initForWritingWithMutableData:data];
[archiver encodeObject:YOURDICTIONARY forKey: YOURDATAKEY];
archiver finishEncoding];
[data writeToFile:YOURFILEPATH atomically:YES];
[data release];
[archiver release];
Run Code Online (Sandbox Code Playgroud)

从存储的NSData中获取NSDictionary

NSData *data = [[NSMutableData alloc]initWithContentsOfFile:YOURFILEPATH];
NSKeyedUnarchiver *unarchiver = [[NSKeyedUnarchiver alloc] initForReadingWithData:data];
YOURDICTIONARY = [unarchiver decodeObjectForKey: YOURDATAKEY];
[unarchiver finishDecoding];
[unarchiver release];
[data release];
Run Code Online (Sandbox Code Playgroud)