python - Objective C 到 Python 序列化

标签 python objective-c serialization

我有一个充满 BeziarPaths 的 NSMutableArray。我想将其序列化,以便可以在 Python 上访问。有人向我建议我可以尝试 GZIP + InkML 或 GZIP +JSON。我想知道最好的方法是什么。我对此也很陌生,因此示例代码将非常有帮助。

谢谢

最佳答案

我最近在这个特定领域使用了 Protocol Buffer ,效果非常好。它的开销非常小,并且比 native Objective-C 序列化/反序列化性能更好(至少在我正在测试性能的 iPod touch 上,因为它是我们想要支持的最慢的设备)。

作为 iOS 开发新手,我花了一段时间才将它们设置好(不过 Python 方面确实很简单)。

这篇博文确实有帮助:http://nserror.me/blog/2011/06/03/protocol-buffers-and-xcode/

总结如何将 Protocol Buffer 集成到 Objective C 项目中——这花了我一整天的时间来拼凑,所以我把它放出来,希望与我情况相同的人觉得它有用:

  • here 获取 Protocol Buffer
  • 配置/make/make安装
  • 获取this项目(对于懒人来说就是 git clone https://github.com/booyah/protobuf-objc.git)
  • autogen.sh/configure/make/make install
  • 在 protobuf-objc/src/runtime 中有一个 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 中添加对项目的引用(只需从 finder 拖入项目即可
  • 在目标的“构建阶段”下添加对 ProtocolBuffers 的依赖项
  • 在“build设置”下选择“全部” View ,并将以下内容添加到 header 搜索路径中:${SOURCE_ROOT}/protobuf-objc/src/runtime/Build/Products
  • 在目标摘要中,添加指向 ProtocolBuffers 项目生成的 .a 文件的链接。
  • 就是这样,从现在开始,您只需将 .proto 文件添加到项目(以及要编译的文件列表)中,就可以使用 Protocol Buffer

关于python - Objective C 到 Python 序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8661415/

相关文章:

python - 使用正则表达式删除不需要的字符串结尾

Python - 函数更改输入列表,虽然我做了一个副本

objective-c - iOS是否会更改对象的引用?

java - java中一个类的对象在2个不同的JVM上的序列化

serialization - WF 自定义 SQL 跟踪服务停止为旧工作流工作?

Python - 如果输入是某个字符串,则语句

python - 如何将 FunctionName(t1 : datetime, t2: datetime): 转换为 Python 2

ios - IF 比较 CGFloat 值 - Xcode 7 给出错误

ios - 向 UITextField 添加不透明 subview

Delphi (win32) 序列化库