【问题标题】:Encode/decode NSCoder data in C++在 C++ 中编码/解码 NSCoder 数据
【发布时间】:2011-09-06 21:31:12
【问题描述】:

我想在 C++ 应用程序(在 linux 机器上运行)和 iPhone 应用程序之间发送序列化对象。这可能吗?

有没有办法在 C++ 端使用 NSCoding 协议对数据进行编码/解码?有人对这个协议进行了逆向工程吗?

【问题讨论】:

  • NSCoding 只是一个 Objective-C 协议。你的意思是 NSKeyedArchiver 和 NSKeyedUnarchiver 吗?不确定,但我认为这些都包含在 GNUstep 中,您可以将其与 Objective-C++(类似于 Objective-C 的 C++ 的超集)一起使用。
  • 另外,使用 NSKeyedArchiver 归档的文件只是二进制属性列表。您可以使用 Property List Editor 或 Xcode 检查它们。
  • 是的,我想要的是 NSKeyedArchiver/NSKeyedUnarchiver 的 C++ 等价物。这存在吗?

标签: iphone c++ nskeyedarchiver


【解决方案1】:

我找不到任何技术来解码 C++ 中使用 NSCoder 协议序列化的对象。

我最终在双方都构建了一个 JSON 接口,并简单地将我的对象作为序列化文本来回发送。

感谢您的回复和想法!

【讨论】:

    【解决方案2】:

    我不是专家,但您最好的选择似乎是使用属性列表,它允许您将对象序列化为与设备无关的格式。但是,您可能仍需要在 C++ 端编写一些自定义反序列化代码。但这似乎比尝试解码存档对象更容易。

    查看更多详情:http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/Archiving/Articles/serializations.html#//apple_ref/doc/uid/20000947-BCIEBEGI

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多