2009-12-20 86 views
0

你好我需要加载NSKeyedArchiver类到C++/CLI对应。有没有办法获得NSKeyedArchiver的内部格式?
另一种选择是将整个保存和打开代码重写为Mac和Windows的纯C++。NSKeyedArchiver内部格式

非常感谢。

回答

1

所以你的约束似乎是:

  1. 一些容易在Windows和Mac解析。
  2. 3D建模数据,所以格式需要。如果你想要的东西快速和肮脏的,去一个二进制的plist(也可能是gzip压缩的话)是有效

。你也可以尝试Google's protocol buffers,但我没有经验。基金会也有几个开源实现 - Cocotron可能对你最有用。

+0

我想我会用纯C++编写一些快速和脏的自定义格式,使用标准的ofstream/ifstream在STL中。 Cocotron看起来很有趣,如果执行格式与Apple相同。但我认为阅读Cocotron内部工作比两种平台的简单的ofstream/ifstream C++实现需要更多的时间。 感谢您的想法。 – 2009-12-21 06:31:35

+0

我大约75%确定它会是同一件事,因为我相信NSKeyedArchiver用于nib文件。 – 2009-12-26 09:12:24

0

如果你没有序列化Objective-C特定的东西,那么就使用XML属性列表。

+0

问题是我正在序列化3D应用程序中的建模数据,它在XML中将非常庞大。 所以最好是一些二进制形式。我可以使用纯C++编写序列化代码,但是我使用NSKeyedArchiver编写代码,如果内部格式不难,我可以为C#或C++/CLI编写类似的类。 感谢您的快速回答。 – 2009-12-20 21:53:43

+0

然后,你真的没有理由为你的数据使用Apple的格式。 – 2009-12-20 22:04:11

+0

@ Azeem.Butt我有点像他一样,有一个原因,首先我的应用程序只有苹果,所以我现在使用苹果的格式,3年后我想将它传递给Windows。如果我想放弃苹果的格式,我将遇到向后兼容Mac的麻烦......所以也许我应该试试Cocotron: -/ – ColdSteel 2015-06-30 09:23:03