【问题标题】:MessagePack implementation for Objective-CObjective-C 的 MessagePack 实现
【发布时间】:2011-09-22 20:52:55
【问题描述】:

是否有针对 Objective-C 的 MessagePack 协议的实现?

如果没有,是否有将 C 实现桥接到 Objective-C 类型的示例?

【问题讨论】:

    标签: objective-c msgpack messagepack


    【解决方案1】:

    如果桥接是指从另一种语言访问一种语言功能的可能性,那么不需要在 Objective-C 和 C 之间进行桥接。你可以直接从 Objective-C 调用 C 代码,所以你可以使用 C- MessagePack 直接类型。

    我想你已经知道这一点,所以你正在寻找的是 Objective-C 和 MessagePack 之间的桥梁(或适配器,或外观,或绑定,或任何其他名称),允许你在一个更多类似“Objective-C”的方式。

    所以我假设您的问题是 MessagePack 的 C-API 确实是“低级”的,而您正在从 Objective-C 寻找 MessagePack 的“高级”API。

    一些建议:

    1. 不使用 C-API,而是使用 C++ API for MessagePack。这很简单,可以轻松为您完成这项工作。事实上,在我看来,MessagePack C++-API 非常好,如果你用“.mm”扩展名命名你的 Objective-C 文件,你可以在其中混合使用 Objective-C 和 C++ 代码(这称为 Objective-C++ )。

    2. 如果您正在寻找更高级别的 MessagePack API,您可以使用 Python-API,然后使用 Python-Objective-C bridge 以允许混合 Objective-C 和 Python 代码。您的表现可能会有所不同。

    3. 如果你真的想在 Objective-C 和 MessagePack C API 之间实现某种中间层(随意调用),我建议使用 MessagePack 的 C++ 或 Python API 作为设计示例,取决于您最熟悉的语言。因此,例如,您将在使用 std:vector(或 Python 向量)的地方使用 NSArray,依此类推。这应该为设计这个中间层提供了一条直接的途径。

    【讨论】:

    • 第二/第三段抓住了问题的意图。我在使用 Objective-C 的 C-API 时没有问题,这可能就是我最终要做的——我应该使用 MessagePack。感谢您的详细回答。
    【解决方案2】:

    MessagePack 项目下现在有了正式的实现。

    https://github.com/msgpack/msgpack-objectivec

    【讨论】:

      【解决方案3】:

      https://github.com/chrishulbert/msgpack

      Chris Hulbert 刚刚实施并发布了一个。

      查看他的博客了解更多信息:

      http://splinter.com.au/messagepack-parser-for-objective-c-iphone

      【讨论】:

      • 没有测试它,看起来很有希望。将试一试并相应地更改接受。谢谢。
      猜你喜欢
      • 2013-07-31
      • 1970-01-01
      • 1970-01-01
      • 2012-04-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多