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

首頁 > 系統 > iOS > 正文

iOS之ProtocolBuffer搭建和示例demo

2019-11-09 16:55:14
字體:
來源:轉載
供稿:網友
 這次搭建iOS的PRotocolBuffer編譯器和把*.proto源文件編譯成*.pbobjc.h 和 *.pbobjc.m文件時,碰到不少問題!

搭建pb編譯器到時沒有什么問題,只是在把*.proto文件編譯出來后,我用cocoaPods集成ProtocolBuffers到自己項目,

cocoaPods集成的時候,我嘗試了兩個庫,一個是:

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

另外一個是:

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

但是運行時都一直報錯通過:

一會報ProtocolBuffer庫文件找不到;

一會報版本不對:This file was generated by a different version of protoc which is incompatible with your Protocol Buffer library sources ;

一會報屬性數據格式不存在,不匹配。

 

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

簡單說下我這邊pb編譯器的安裝過程,和編譯后的使用demo:

 

一、環境安裝:pb編譯器的安裝

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

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

  2、解壓包,假設解壓后的文件夾名為: protobuf-objectivec-3.1.0,     打開終端,進入文件夾protobuf-objectivec-3.1.0, 依次執行以下命令:

./configuremakemake checksudo make install

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

 

二、創建新項目,導入pb庫,編寫proto文件編譯,使用過程      1、從https://github.com/google/protobuf.git下載源碼,解壓,里面有支持不同語言的版本源碼,

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

  

 

  2、新建一個工程命名為Tan_ProtocolBuffer,創建一個文件夾,假設命名為:protocolbuf, 把第一步的pb源碼復制到此文件夾中:

  

 

  3、使用Xcode打開工程,點擊左下角“+”, 引用protocolBuffer源文件到工程中

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

      

   

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

  

 

  5、在工程設置搜索靜態庫的頭文件(pb文件在protocolbuf文件夾里面):

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

  

 

  

  6、編寫測試文件*.proto,比如新建一個文件Person.proto, 按照官方標準語法https://developers.google.com/protocol-buffers/ 編寫通用代碼,  寫好后在終端進入該Person.proto文件所在目錄,使用protoc命令:protoc *.proto --objc_out=../Pro_out 進行編譯?! “裀erson.proto文件編譯成Person.pbobjc.h和Person.pbobjc.m, 生成的文件在Pro_out文件夾里面?! ∪绻鸓erson.proto源文件有語法問題,編譯時會報錯;當編譯時什么提示都沒有,表示編譯成功:  將編譯好的*.pbobjc.h和*.pbobjc.m拖入工程中,因為不支持arc, 所以需要在*.pbobjc.m設置-fno-objc-arc, 然后就可以使用了。

  截圖如下:  

    

 

    

 

           

 

   

 

     

 

 

  7、編寫測試代碼,使用Person類進行數據序列化和反序列:

  

./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


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 陕西省| 阿克| 玛多县| 鱼台县| 津市市| 两当县| 江山市| 小金县| 会泽县| 阜城县| 页游| 修文县| 鄱阳县| 泾阳县| 乌兰浩特市| 华阴市| 镇赉县| 博罗县| 时尚| 临漳县| 新巴尔虎左旗| 荃湾区| 法库县| 郑州市| 阳江市| 高安市| 常宁市| 独山县| 天祝| 澄迈县| 邵阳市| 长春市| 山东| 仪陇县| 公安县| 冀州市| 衡南县| 若羌县| 武宁县| 类乌齐县| 谷城县|