Реализация MessagePack для Objective-C - PullRequest
3 голосов
/ 26 июня 2011

Существует ли реализация протокола MessagePack для Objective-C?

Если нет, есть ли примеры для привязки реализации C к типам Objective-C?

Ответы [ 3 ]

4 голосов
/ 26 июня 2011

Если под мостом вы подразумеваете возможность доступа к одной языковой функции из другого языка, тогда нет необходимости соединять Objective-C и C. Вы можете вызывать C-код непосредственно из Objective-C, поэтому вы можете использовать C-MessagePack вводит напрямую.

Я полагаю, вы уже знаете это, поэтому вам нужен мост (или адаптер, или фасад, или привязки, или любое из многих других имен) между Objective-C и MessagePack,позволяя вам использовать MessagePack более «Objective-C» -подобным способом.

Итак, я предполагаю, что ваша проблема в том, что C-API для MessagePack действительно «низкоуровневый» и вы ищетеAPI более высокого уровня для MessagePack от Objective-C.

Несколько предложений:

  1. вместо использования C-API, используйте API C ++ для MessagePack,Это просто и может легко сделать работу за вас.Действительно, MessagePack C ++ - API довольно хорош, на мой взгляд, и если вы называете свой файл Objective-C с расширением «.mm», вы можете смешивать в нем код Objective-C и C ++ (это называется Objective-C ++).

  2. если вы ищете еще более высокоуровневый API для MessagePack, вы можете использовать Python-API, а затем мост Python-Objective-C чтобы можно было смешивать код Objective-C и Python.Ваша производительность может отличаться.

  3. Если вы действительно после реализации какого-то промежуточного уровня (назовите его как хотите) между Objective-C и MessagePack C API, я бы предложил использоватьAPI C ++ или Python для MessagePack как пример дизайна, в зависимости от того, с каким языком вы наиболее знакомы.Так, например, вы должны использовать NSArray, где используется вектор std: (или вектор Python), и так далее.Это должно обеспечить прямой путь в дизайне этого промежуточного слоя.

3 голосов
/ 01 марта 2012

В настоящее время существует официальная реализация в рамках проекта MessagePack.

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

2 голосов
/ 15 июля 2011

https://github.com/chrishulbert/msgpack

Крис Халберт только что внедрил и выпустил один.

См. Его блог для получения дополнительной информации:

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

...