2011-12-28 4 views
1

У меня есть NSMutableArray, заполненный BeziarPaths. Я хотел бы сериализовать его так, чтобы он был доступен на Python. Кто-то предложил мне, что я могу попробовать GZIP + InkML или GZIP + JSON. Мне было интересно, что лучший способ сделать это. Я также очень новичок в этом, поэтому пример кода будет очень полезен.Objective C to Python Serialization

Thanks

+0

Почему не SVG? Если это просто Bezier Paths, то SVG будет так же хорош и намного лучше поддерживается, нет? –

+0

SVG кажется очень интересным. Может ли кто-нибудь ссылаться на пример кода, показывающий мне, как это сделать? – user1120008

+0

С другой стороны, мне было интересно, существует ли двоичный формат, совместимый для обоих. – user1120008

ответ

0

Выберите, что вам больше всего нравится. Оба стандарта, но JSON - это общий формат, используемый для сериализации словарей и массивов, в то время как InkML фокусируется на рисовании связанных объектов.

Поддержка JSON доступна как в Python, так и в Objective-C, в то время как InkML не имеет встроенной поддержки.

1

Недавно я использовал протокольные буферы для отличного эффекта в этой конкретной области. У этого очень мало накладных расходов и работает лучше, чем родная цель Сериализация/десериализация сериализации (по крайней мере, на Ipod Touch, с которым я тестирую производительность, поскольку это самое медленное устройство, которое мы хотим поддерживать).

Мне потребовалось некоторое время, чтобы настроить их как новичка в разработке iOS, хотя (на стороне python было очень легко).

Этот блог действительно помогает: http://nserror.me/blog/2011/06/03/protocol-buffers-and-xcode/

Суммируя о том, как интегрировать буфера протокола в объективный проект C - Это заняло у меня целый день, чтобы собрать вместе, поэтому я ставлю его в надежде кого-то в моей ситуации находит полезным:

  • протокола получить буферы here
  • Configure/сделать/сделать установку
  • получить this проект (это мерзавец клондля ленивых)
  • autogen.sh/configure/make/make установить
  • В Protobuf-ObjC/SRC/выполнения есть проект Xcode. Откройте его, создайте, а затем снова закройте xcode. Очень важно, чтобы вы это делали.
  • откройте свой проект в Xcode. Перейдите на вкладку «правила построения» в целевом объекте. Добавьте настраиваемое правило сборки для файлов * .proto.

Сценарий:

/usr/local/bin/protoc --plugin=/usr/local/bin/protoc-gen-objc \ 
--proto_path=${INPUT_FILE_DIR} \ 
--objc_out=${DERIVED_SOURCES_DIR} \ 
${INPUT_FILE_PATH} 

Выходные файлы:

${DERIVED_SOURCES_DIR}/${INPUT_FILE_BASE}.pb.h 
${DERIVED_SOURCES_DIR}/${INPUT_FILE_BASE}.pb.m 
  • скопировать Protobuf-ObjC проект в тот же каталог, у вас есть .xcodeproj в
  • Добавить ссылка на проект в protobuf-obj/src/runtime (просто перетащите из искателя в ваш проект
  • В разделе «Фазы сборки» для вашей цели добавьте зависимость от ProtocolBuffers
  • В разделе «Настройки сборки» выберите «все» и добавьте следующие пути поиска заголовка: $ {SOURCE_ROOT}/protobuf-objc/src/runtime/Build/Products
  • В сводке для вашей цели добавьте ссылку на .a-файл, сгенерированный проектом ProtocolBuffers.
  • И это все, отныне, вы просто добавляете свое.proto-файлы в проект (и список файлов для компиляции), и вы можете использовать буферы протокола