国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 系統(tǒng) > iOS > 正文

iOS之ProtocolBuffer搭建和示例demo

2019-11-09 17:55:22
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
 這次搭建iOS的PRotocolBuffer編譯器和把*.proto源文件編譯成*.pbobjc.h 和 *.pbobjc.m文件時(shí),碰到不少問(wèn)題!

搭建pb編譯器到時(shí)沒(méi)有什么問(wèn)題,只是在把*.proto文件編譯出來(lái)后,我用cocoaPods集成ProtocolBuffers到自己項(xiàng)目,

cocoaPods集成的時(shí)候,我嘗試了兩個(gè)庫(kù),一個(gè)是:

https://github.com/google/protobuf.git,

另外一個(gè)是:

https://github.com/alexeyxo/protobuf-objc.git

但是運(yùn)行時(shí)都一直報(bào)錯(cuò)通過(guò):

一會(huì)報(bào)ProtocolBuffer庫(kù)文件找不到;

一會(huì)報(bào)版本不對(duì):This file was generated by a different version of protoc which is incompatible with your Protocol Buffer library sources ;

一會(huì)報(bào)屬性數(shù)據(jù)格式不存在,不匹配。

 

   最后不得已只好放棄CocoaPods, 直接把從https://github.com/google/protobuf下載下來(lái)的庫(kù)拖進(jìn)工程里面,這樣才OK了!

簡(jiǎn)單說(shuō)下我這邊pb編譯器的安裝過(guò)程,和編譯后的使用demo:

 

一、環(huán)境安裝:pb編譯器的安裝

     1、從https://github.com/google/protobuf/releases下載protocolBuffer對(duì)應(yīng)版本編譯器包,比如目前的對(duì)應(yīng)的objc最新版本

    下載地址為:https://github.com/google/protobuf/releases/download/v3.1.0/protobuf-objectivec-3.1.0.zip

  2、解壓包,假設(shè)解壓后的文件夾名為: protobuf-objectivec-3.1.0,     打開(kāi)終端,進(jìn)入文件夾protobuf-objectivec-3.1.0, 依次執(zhí)行以下命令:

./configuremakemake checksudo make install

  如果編譯順利的話,便可以使用protoc命令了,以后便可以用這個(gè)命令將.proto文件轉(zhuǎn)換為不同語(yǔ)言的源代碼文件。

 

二、創(chuàng)建新項(xiàng)目,導(dǎo)入pb庫(kù),編寫(xiě)proto文件編譯,使用過(guò)程      1、從https://github.com/google/protobuf.git下載源碼,解壓,里面有支持不同語(yǔ)言的版本源碼,

  我們只需要里面的支持objc的文件夾名為:objectivec,如圖:

  

 

  2、新建一個(gè)工程命名為T(mén)an_ProtocolBuffer,創(chuàng)建一個(gè)文件夾,假設(shè)命名為:protocolbuf, 把第一步的pb源碼復(fù)制到此文件夾中:

  

 

  3、使用Xcode打開(kāi)工程,點(diǎn)擊左下角“+”, 引用protocolBuffer源文件到工程中

  (源文件里面有兩個(gè)工程配置文件:ProtocolBuffers_iOS.xcodeproj和ProtocolBuffers_OSX.xcodeproj,引用ProtocolBuffers_iOS.xcodeproj就好)

      

   

  4、選中工程: targets —>  Build Phases  —>  Link Binary With Libraries, 引用源碼靜態(tài)庫(kù)文件:libProtocolBuffers.a

  

 

  5、在工程設(shè)置搜索靜態(tài)庫(kù)的頭文件(pb文件在protocolbuf文件夾里面):

   targets —>  Build Setting  —>  Search Paths  —> Header Search Paths, 寫(xiě)入:$(PROJECT)/protocolbuf 

  

 

  

  6、編寫(xiě)測(cè)試文件*.proto,比如新建一個(gè)文件Person.proto, 按照官方標(biāo)準(zhǔn)語(yǔ)法https://developers.google.com/protocol-buffers/ 編寫(xiě)通用代碼,  寫(xiě)好后在終端進(jìn)入該P(yáng)erson.proto文件所在目錄,使用protoc命令:protoc *.proto --objc_out=../Pro_out 進(jìn)行編譯?! “裀erson.proto文件編譯成Person.pbobjc.h和Person.pbobjc.m, 生成的文件在Pro_out文件夾里面。  如果Person.proto源文件有語(yǔ)法問(wèn)題,編譯時(shí)會(huì)報(bào)錯(cuò);當(dāng)編譯時(shí)什么提示都沒(méi)有,表示編譯成功:  將編譯好的*.pbobjc.h和*.pbobjc.m拖入工程中,因?yàn)椴恢С謅rc, 所以需要在*.pbobjc.m設(shè)置-fno-objc-arc, 然后就可以使用了。

  截圖如下:  

    

 

    

 

           

 

   

 

     

 

 

  7、編寫(xiě)測(cè)試代碼,使用Person類(lèi)進(jìn)行數(shù)據(jù)序列化和反序列:

  

./protoc --proto_path=protocols --objc_out=gen protocols/protocol.proto

示例demo下載地址:https://github.com/xiaotanit/Tan_ProtocolBuffer

 

原文鏈接:http://www.cnblogs.com/tandaxia/p/6181534.html


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 六安市| 长兴县| 清流县| 太湖县| 墨竹工卡县| 和平县| 红安县| 密云县| 长治县| 隆林| 左权县| 六枝特区| 闵行区| 阿克陶县| 射洪县| 丁青县| 云南省| 宿松县| 大城县| 富蕴县| 铜梁县| 梁山县| 江源县| 六枝特区| 凌源市| 陆河县| 周至县| 乐东| 黎城县| 平泉县| 海安县| 茌平县| 新邵县| 石棉县| 砚山县| 固始县| 延庆县| 上栗县| 永川市| 朝阳市| 慈利县|