3

Objective-C 用のMessagePackプロトコルの実装はありますか?

そうでない場合、C 実装を Objective-C 型にブリッジする例はありますか?

4

3 に答える 3

4

ブリッジによって、ある言語機能に別の言語からアクセスできる可能性を意味する場合、Objective-C と C の間でブリッジする必要はありません。Objective-C から直接 C コードを呼び出すことができるため、C-MessagePack タイプを直接使用できます。 .

あなたはすでにこれを知っていると思いますので、探しているのはObjective-CとMessagePackの間のブリッジ(またはアダプター、ファサード、バインディング、または他の多くの名前のいずれか)であり、MessagePackをより「客観的に」使用できるようにします-C」のような方法。

したがって、MessagePack への C-API が実際には「低レベル」であり、Objective-C から MessagePack への「高レベル」API を探しているという問題があると思います。

いくつかの提案:

  1. C-API を使用する代わりに、MessagePack に C++ API を使用します。これは簡単で、簡単に作業を行うことができます。実際、私の意見では、MessagePack C++-API は非常に優れており、Objective-C ファイルに「.mm」拡張子を付けて名前を付けると、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 が 1 つを実装してリリースしました。

詳細については、彼のブログを参照してください。

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

于 2011-07-15T00:22:38.187 に答える