У меня есть NSMutableArray, заполненный BeziarPaths. Я хотел бы сериализовать его так, чтобы он был доступен на Python. Кто-то предложил мне, что я могу попробовать GZIP + InkML или GZIP +JSON. Мне было интересно, что лучший способ сделать это. Я также очень новичок в этом, поэтому пример кода будет очень полезен.
благодаря
Выберите то, что вам больше всего нравится. Оба стандарта, но JSON - это общий формат, используемый для сериализации словарей и массивов, в то время как InkML фокусируется на рисовании связанных объектов.
Поддержка JSON доступна как в Python, так и в Objective-C, а InkML не имеет встроенной поддержки.
Недавно я использовал протокольные буферы для отличного эффекта в этой конкретной области. Он получил очень мало накладных расходов и работает лучше, чем родная цель Сериализация/десериализация сериализации (по крайней мере, на ipod touch, с которым я тестирую производительность, поскольку это самое медленное устройство, которое мы хотим поддерживать).
Мне потребовалось некоторое время, чтобы настроить их как новичка в разработке iOS, хотя (на стороне python было очень легко).
Это сообщение в блоге действительно помогает: http://nserror.me/blog/2011/06/03/protocol-buffers-and-xcode/
Подводя итог тому, как интегрировать буферы протокола в объектный проект C, мне потребовался целый день, чтобы собрать его, чтобы я мог надеяться, что кто-то в моей ситуации сочтет это полезным:
Сценарий:
/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