標籤:sage 建立 lib alt sea 下載 div tle make
一、環境安裝:pb編譯器的安裝
1、從https://github.com/google/protobuf/releases下載protocolBuffer對應版本編譯器包,比如目前的對應的objc最新版本Protocol Buffers v3.2.0
2、解壓包,假設解壓後,開啟終端,進入檔案夾protobuf-objectivec , 依次執行以下命令:
./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 進行編譯。 把Person.proto檔案編譯成Person.pbobjc.h和Person.pbobjc.m, 產生的檔案在Pro_out檔案夾裡面。如果Person.proto源檔案有文法問題,編譯時間會報錯;當編譯時間什麼提示都沒有,表示編譯成功:將編譯好的*.pbobjc.h和*.pbobjc.m拖入工程中,因為不支援arc, 所以需要在*.pbobjc.m設定-fno-objc-arc, 然後就可以使用了。
如下:
syntax = "proto3";message Person{ string name = 1; int32 age = 2; enum DeviceType{ IOS = 0; Android = 1; WP = 2; } DeviceType deviceType = 3; message Result{ string url = 1; string title = 2; } repeated Result results = 4; repeated Animal animals = 5;}message Animal{ float weight = 1; double price = 2; string name = 3;}
7、編寫測試代碼,使用Person類進行資料序列化和反序列:
樣本demo:https://github.com/xiaotanit/Tan_ProtocolBuffer
iOS之ProtocolBuffer搭建