当前位置:  开发笔记 > Android > 正文

如何使用NSPropertyListXMLFormat_v1_0格式的NSKeyedArchiver将对象序列化为文件?

如何解决《如何使用NSPropertyListXMLFormat_v1_0格式的NSKeyedArchiver将对象序列化为文件?》经验,为你挑选了2个好方法。

希望这个标题足够清楚.无论如何,似乎:

[NSKeyedArchiver archiveRootObject:rootObject toFile:path];

仅限于NSPropertyListBinaryFormat_v1_0.

我需要格式是人类可读的[所以xml].如果您有兴趣,这是项目的一部分,我最终会在github上刊登一篇关于"如何对GPS应用进行单元测试"的博客文章

:-)



1> Jason Coco..:

你必须用来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];
}



2> Marc Charbon..:

不要使用类方法,而是尝试创建NSKeyedArchiver的实例并使用setOutputFormat:NSPropertyListXMLFormat_v1_0指定XML格式.唯一的缺点是它需要一些额外的代码行,因为实际处理序列化,它不会只是一步返回NSData对象.

推荐阅读
低调pasta_730
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有