美文网首页iOS
iOS Google Protobuf

iOS Google Protobuf

作者: NieFeng1024 | 来源:发表于2016-12-01 15:04 被阅读1150次

首先这里对安装编译源不做讨论
若要了解 请参考
http://www.zuimoban.com/jiaocheng/ios/2016/0107/2656.html
http://www.jianshu.com/p/a0a5ad711eb2
1.看文档
https://developers.google.com/protocol-buffers/docs/reference/objective-c-generated

  1. 本页面描述正是目标C代码协议缓冲编译器为任何给定的协议定义。
    proto2和proto3生成的代码之间的差异将突出显示。
    你应该阅读proto2语种导游和/或proto3语种导游阅读本文件前。

在桌面创建一个文件夹Protobuf 或者打开终端使用命令行touch Protobuf
在Protobuf 文件夹中创建一个 xxx.proto的文件 内容格式必须按照文档要求写

cd 拖Protobuf文件夹到终端进来
最重要 DictationRecordItem这个是你创建的
protoc --plugin=/usr/local/bin/protoc-gen-objc DictationRecordItem.proto --objc_out="./"

[libprotobuf WARNING google/protobuf/compiler/parser.cc:546] No syntax specified for the proto file: DictationRecordItem.proto. Please use 'syntax = "proto2";' or 'syntax = "proto3";' to specify a syntax version. (Defaulted to proto2 syntax.)

意思是你在创建的 DictationRecordItem.proto 文件里没有声明是使用哪个版本
syntax = "proto2"; or syntax = "proto3" 随便写一个 默认是proto2

String literals cannot cross line boundaries.
DictationRecordItem.proto:3:1: Expected ";".

请检查标点符号 必须是这两种否则无法通过编译 " ;

DictationRecordItem.proto:4:8: Option "objc_package" unknown.

objc_package / package 设置的有问题 要么修改要么删掉不写
DictationRecordItem.proto:4:8: Option "outer_classname" unknown.

outer_classname 设置的有问题 要么修改要么删掉不写

Required fields are not allowed in proto3.
没有通过proto3

protoc:0: warning: File 'DictationRecordItem.proto' has no package. Consider adding a new package to the proto and adding 'new.package = ' to the expected prefixes file ().
没有包加一个呗 可以不加

Demo https://github.com/550872569/GoogleProtobuf

相关文章

网友评论

  • angBiu:Google Protobuf 跟系统 foundation库冲突。。导致pch文件都用不了了。。。
  • 0668c9156f1e:楼主你好 , 请问你项目中用到的protobuf , 那么你网络请求是用的什么框架>?AFN吗? 怎么解析数据啊
    小小云喵:@MustangYM 你好,我也遇上同样的问题,请问是怎么解决的?protobuf数据怎么请求?
    0668c9156f1e:@_550872569 这问题已经解决了,谢谢了
    NieFeng1024:@MustangYM protobuf 返回数据是加密的,需要解密,根据固定数据格式手动解析,得到模型数据。和网络请求用什么框架没有关系。

本文标题:iOS Google Protobuf

本文链接:https://www.haomeiwen.com/subject/owbxmttx.html