希望这个标题足够清楚.无论如何,似乎:
[NSKeyedArchiver archiveRootObject:rootObject toFile:path];
仅限于NSPropertyListBinaryFormat_v1_0
.
我需要格式是人类可读的[所以xml].如果您有兴趣,这是项目的一部分,我最终会在github上刊登一篇关于"如何对GPS应用进行单元测试"的博客文章
:-)
你必须用来NSPropertyListSerialization
转换它.基本上,假设调用您正在序列化的对象myObject
并存储最终文件myPath
,您可以使用类似下面的代码片段将其序列化为XML:
NSString *error = nil; NSData *mySerializedObject = [NSKeyedArchiver archivedDataWithRootObject:myObject]; NSData *xmlData = [NSPropertyListSerialization dataFromPropertyList:mySerializedObject format:NSPropertyListXMLFormat_v1_0 errorDescription:&error]: if( xmlData ) { [xmlData writeToFile:myPath atomically:YES]; } else { NSLog(error); [error release]; }
不要使用类方法,而是尝试创建NSKeyedArchiver的实例并使用setOutputFormat:NSPropertyListXMLFormat_v1_0
指定XML格式.唯一的缺点是它需要一些额外的代码行,因为实际处理序列化,它不会只是一步返回NSData对象.