-
环境搭建及编译
1.安装brew
执行这一步的时候可能会error443 connect报错,则用下面方法安装
/usr/bin/ruby -e "$(curl -fsSL https://cdn.jsdelivr.net/gh/ineo6/homebrew-install/install)"
2. 使用brew安装protoc
brew install protobuf
3.安装 automake
brew install automake
brew install libtool
4.将ProtoBuf协议文件编译为OC文件
protoc –proto_path=. –objc_out=. xxxxxx.proto
protoc 为proto的生成指令 后面添加 参数
参数的形式为: –参数命令名=参数
–proto_path=. 指出proto文件所在的根目录是哪里, 如果用.说明是当前目录
–objc_out=. 指出 生成目录在哪里, 如果用.说明是当前目录
-
语法
//import "xxx.proto" //引用其他 proto 文件 syntax = "proto3"; option objc_class_prefix = "Prefix_"; //加前缀 message SearchRequest { string query = 1; int32 pageNumber = 2; int32 resultPerPage = 3; enum Corpus { //枚举 UNIVERSAL = 0; WEB = 1; IMAGES = 2; LOCAL = 3; NEWS = 4; PRODUCTS = 5; VIDEO = 6; } Corpus corpus = 4; } message SearchResponse { repeated Result results = 1; //数组 map<string, Result> subMsgMap = 2; // Map } message Result { string url = 1; string title = 2; repeated string snippets = 3; //数组 } message SubMessage { string age = 1; } message SampleMessage { oneof testOneof { string name = 1; SubMessage sub_message = 2; } }
Required: 表示是一个必须字段,必须相对于发送方,在发送消息之前必须设置该字段的值。
Optional:表示是一个可选字段,可选对于发送方,在发送消息时,可以有选择性的设置或者不设置该字段的值。
Repeated:表示该字段可以包含0~N个元素。即数组。
原文链接:https://blog.csdn.net/iOSZZZh/article/details/123451744?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522165934461816781647583270%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=165934461816781647583270&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~times_rank-25-123451744-null-null.article_score_rank_blog&utm_term=%E6%90%AD%E5%BB%BAcdn
原创文章,作者:优速盾-小U,如若转载,请注明出处:https://www.cdnb.net/bbs/archives/7343