protobuf3 iOS 接入 protobuf
来源:互联网 发布:麦克数据 编辑:程序博客网 时间:2024/05/18 13:25
protobuf是一种可扩展的数据格式.它不依赖语言,平台.相比xml格式,它更小,更快,更简单.这种语言目前支持了java,php,c++等多种语言,可以根据官网教程使用该数据格式.本文主要讲述object-c的接入.这是最近官方支持的语言,以前更多的是使用c++或者第三方的库导入object-c项目中使用.本文会对object-c的使用做简单介绍,后面的文章会有一些分析.
1.引入官方基础pod
谷歌将protobuf需要使用的基础类封装成了一个pod,因此可以直接安装该pod,不必再手工导入.
如下: pod "Protobuf", :git => "https://github.com/google/protobuf.git"
之所以设置git路径,是因为这样pod ‘Protobuf’, ‘~> 3.1.0’一直没有下载下来,所以直接使用了官网路径.
2.下载生成代码工具
a.安装protoc: brew install –devel protobuf 如果出现了下面的版本号,说明安装成功 ➜ ~ protoc --version libprotoc 3.0.0
关于protoc工具的使用请参考 https://developers.google.com/protocol-buffers/docs/proto3
b.另外一个方法是直接从github下载,自己编译一个protoc 链接:https://github.com/google/protobuf/tree/master/objectivec.编译完成后,
在protobuf/src下可以找到该工具
3.定义数据模型
syntax = "proto3";package tutorial;message SearchResponse { repeated Result results = 1;}message Result { string url = 1; string title = 2; repeated string snippets = 3;}
将以上数据保存到Test.proto的文件中.
生成代码的命令为:
protoc –objc_out=tmp Test.proto
最后一个参数是定义的数据模型,生成的代码会写入objc_out对应的文件夹内.注意是两个短横杠
4.简单使用
- 直接将生成的代码拖入1创建的项目中,
- import相关头文件
- protobuf为了性能考虑,创建的都是mrc文件,因此在build phrases ->Compile
sources中给拖入的文件添加 -fno-objc-arc的标志
Result *res = [[Result alloc] init]; res.title = @"11"; NSLog(@"%@",res.description); //序列化 NSData *data = [res data]; //反序列化 NSError *error; Result *res1 = [[Result alloc] initWithData:data error:&error]; NSLog(@"%@",res1.description);
- protobuf3 iOS 接入 protobuf
- Protobuf3 google protobuf
- iOS protobuf3.1.0使用
- QT On IOS + protobuf3的使用
- Protobuf3 + Netty4: 在socket上传输多种类型的protobuf数据
- Protobuf3 + Netty4: 在socket上传输多种类型的protobuf数据
- Protobuf3 + Netty4: 在socket上传输多种类型的protobuf数据
- 在iOS中Protocol Buffer(Protobuf3.3.0)的使用
- IOS ProtoBuf 环境搭建
- IOS 使用protobuf
- iOS protobuf的配置
- iOS中tcp+protobuf
- Protobuf3 使用..
- ios 微博接入
- facebook SDK ios 接入
- iOS接入支付宝
- 接入 PayPal iOS SDK
- Gvoice iOS接入
- noip2016 总结&感想
- 用JS获取地址栏参数的方法(超级简单)
- AIDL进程间通信 Binder
- 勾股定理一日一证连载181
- 得到activiti中mainconfig
- protobuf3 iOS 接入 protobuf
- dlmalloc 2.8.6 源码详解—[0]基础知识
- 哥伦布编码
- 模式识别的概念、方法及应用
- 2016-12-4(每天多学一点点,我一定能化弱为强)(sql篇)
- HBase 系统架构
- 超分辨率重建——经验函数,软阀值,平凡解
- 数学符号大全
- 冒泡排序