ios - 使用 NSKeyedArchiver 从保存在 NSDictionary 中的 NSManagedObjects 生成 XML

标签 ios cocoa core-data nskeyedarchiver

我有一个 NSDictionary,其中包含一堆 NSManagedObject。 然后我可以使用 NSKeyedArchiver 将其写入 NSData 对象。 这些是使用 this method. 生成的哪个工作正常并允许我将模式的一部分保存到光盘,然后将其作为核心数据模型中的一组新对象读回。 如果我使用 archivedDataWithRootObject 之一: 或 archiveRootObject:toFile:,根据 documentation 我可以看到存档的格式是 NSPropertyListBinaryFormat_v1_0,而我想在 NSPropertyListXMLFormat_v1_0 中进行序列化,这样我就可以将我的对象写入一个文件,然后在其他地方将它们作为普通的旧 XML 进行处理。 (事实上​​,我想在基于 Windows 的系统上从它们生成文档。)

1) 我有办法做到这一点吗?如果是这样怎么办? 2)有没有更好的方法。

我想保持序列化的性质,因为我还想稍后将文件发送回 iOS 设备并重新创建对象模型。

最佳答案

  1. 使用 initForWritingWithMutableData: 创建您自己的 NSKeyedArchiver 实例。
  2. 使用 setOutputFormat:NSPropertyListXMLFormat_v1_0 设置格式。
  3. 使用 encodeObject:forKey: 对您的根对象进行编码。
  4. 调用finishEncoding

要取消存档您以这种方式编码的数据,您必须类似地实例化一个 NSKeyedUnarchiver

关于ios - 使用 NSKeyedArchiver 从保存在 NSDictionary 中的 NSManagedObjects 生成 XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7650477/

相关文章:

ios - 从 subview 调用父 View Controller 函数

objective-c - 如何检测某些字符是否位于 NSString 的末尾?

macos - 响应堆叠 View 中的 mouseMove 事件

ios - 向 coredata 添加一个新实体——我还能使用轻量级迁移吗?

ios - 如果不运行使用它的应用程序,可以在 iPad 上看到 Core Data 吗?

iOS UIWebView 应用内购买不起作用

ios - 如何将设备的系统铃声设置为本地通知音?

objective-c - 字符串到 int - cocoa ,objective-c

ios - 动态设置导航 Controller 标题

iphone - 这是将大图像绘制到UIView的最佳方法吗?