如何使用 NSKeyedArchiver 以 NSPropertyListXMLFormat_v1_0 格式将对象序列化为文件?
希望这个标题足够清楚。 无论如何,似乎:
[NSKeyedArchiver archiveRootObject:rootObject toFile:path];
仅限于 NSPropertyListBinaryFormat_v1_0
。
我需要人类可读的格式[so xml]。 如果您感兴趣,这是我最终将在 github 上发布的项目的一部分,其中包含一篇关于“如何对 GPS 应用程序进行单元测试”的博客文章
:-)
Hopefully that title is clear enough. Anyways, it seems:
[NSKeyedArchiver archiveRootObject:rootObject toFile:path];
is restricted to NSPropertyListBinaryFormat_v1_0
.
I need the format to be human readable [so xml]. If you're interested, this is part of project I'll eventually put up on github with a blog post about "How to Unit Test GPS Applications"
:-)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您必须使用 NSPropertyListSerialization 来转换它。 基本上,假设您要序列化的对象名为
myObject
并且最终文件存储在myPath
中,您可以使用类似以下代码片段的内容将其序列化为 XML:You have to use
NSPropertyListSerialization
to convert it. Basically, assuming the object that you're serializing is calledmyObject
and the ultimate file is stored inmyPath
, you would serialize it to XML using something like the following code fragment:不要使用类方法,而是尝试创建 NSKeyedArchiver 的实例并使用
setOutputFormat:NSPropertyListXMLFormat_v1_0
指定 XML 格式。 唯一的缺点是它需要几行额外的代码,因为要实际处理序列化,它不会只一步返回一个 NSData 对象。Instead of using the class method, try creating an instance of NSKeyedArchiver and using
setOutputFormat:NSPropertyListXMLFormat_v1_0
to specify XML format. The only downside is it'll take a few extra lines of code since to actually handle the serialization, it won't just return an NSData object in one step.您必须使用方法对对象类进行编码
-(void)encodeWithCoder(NSCoder *)编码器{
}
You will have to encode the object class by using method
-(void) encodeWithCoder(NSCoder *)encoder {
}