我有一个 NSDictionary,其中包含一堆 NSManagedObject。 然后我可以使用 NSKeyedArchiver 将其写入 NSData 对象。 这些是使用 this method. 生成的哪个工作正常并允许我将模式的一部分保存到光盘,然后将其作为核心数据模型中的一组新对象读回。 如果我使用 archivedDataWithRootObject 之一: 或 archiveRootObject:toFile:,根据 documentation 我可以看到存档的格式是 NSPropertyListBinaryFormat_v1_0,而我想在 NSPropertyListXMLFormat_v1_0 中进行序列化,这样我就可以将我的对象写入一个文件,然后在其他地方将它们作为普通的旧 XML 进行处理。 (事实上,我想在基于 Windows 的系统上从它们生成文档。)
1) 我有办法做到这一点吗?如果是这样怎么办? 2)有没有更好的方法。
我想保持序列化的性质,因为我还想稍后将文件发送回 iOS 设备并重新创建对象模型。
最佳答案
- 使用
initForWritingWithMutableData:
创建您自己的NSKeyedArchiver
实例。 - 使用
setOutputFormat:NSPropertyListXMLFormat_v1_0
设置格式。 - 使用
encodeObject:forKey:
对您的根对象进行编码。 - 调用
finishEncoding
。
要取消存档您以这种方式编码的数据,您必须类似地实例化一个 NSKeyedUnarchiver
。
关于ios - 使用 NSKeyedArchiver 从保存在 NSDictionary 中的 NSManagedObjects 生成 XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7650477/