3

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

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

4

3 回答 3

4

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

我想您已经知道这一点,因此您正在寻找的是 Objective-C 和 MessagePack 之间的桥梁(或适配器,或外观,或绑定或许多其他名称),允许您在更“目标”中使用 MessagePack -C"-like 方式。

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

几个提议:

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

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

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

于 2011-06-26T07:11:33.813 回答
3

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

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

于 2012-02-29T23:41:48.070 回答
2

https://github.com/chrishulbert/msgpack

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

有关更多信息,请参阅他的博客:

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

于 2011-07-15T00:22:38.187 回答