iOS

iOS Google Protobuf

2016-12-01  本文已影响1150人  NieFeng1024

首先这里对安装编译源不做讨论
若要了解 请参考
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

上一篇 下一篇

猜你喜欢

热点阅读