一、簡(jiǎn)介
Protobuffer是一個(gè)類似JSON的一個(gè)傳輸協(xié)議,其實(shí)也不能說是協(xié)議,可以認(rèn)為是一種傳輸數(shù)據(jù)格式類似JSON,XML。但是比JSON更加輕量。消耗更小的帶寬。
跨語(yǔ)言,這是它的一個(gè)優(yōu)點(diǎn)。它自帶了一個(gè)編譯器,protoc,只需要用它進(jìn)行編譯,可以編譯成`JAVA`、`python`、`C++`代碼,暫時(shí)只有這三個(gè),其他就暫時(shí)不要想了,然后就可以直接使用,不需要再寫任何其他代碼。連解析的那些都已經(jīng)自帶有的。JSON當(dāng)然也是跨語(yǔ)言的,但這個(gè)跨語(yǔ)言是建立在編寫代碼的基礎(chǔ)上,iOS開發(fā)使用protobuf可以添加第三方庫(kù)即可集成開發(fā)環(huán)境進(jìn)行使用。
二、環(huán)境的集成
1.protobuf buffers安裝下載
環(huán)境地址https://github.com/google/protobuf/releases

兩個(gè)安裝包可以任選其一
2.將下載好的包解壓,解壓完成之后,用終端進(jìn)入到其根在目錄下,并一次執(zhí)行以下的命令
$./autogen.sh
$ ./configure
$ make
$ make check
$ sudo make install
3.完成以上操作后,打開終端,輸入以下命令
$ cd /usr/local/bin/
$ ls
如果有protoc表示已經(jīng)安裝好protoc插件了
三、創(chuàng)建xxx.proto文件
e.g:
創(chuàng)建一個(gè)Person.proto文件
syntax = "proto3";
message Person {
string name = 1;
int32 age = 2;
string gender = 3;
}
在終端輸入:
protoc --proto_path=. --objc_out=. Person.proto
就會(huì)在與Person.proto同一路徑生成.h和.m文件的
注意:生成的文件是MRC的
四、怎么樣使用
依賴Protobuf第三方框架:https://github.com/google/protobuf.git
可以使用Cocoapods進(jìn)行導(dǎo)入
五、常見錯(cuò)誤解決方法

注釋掉這一行

注釋掉這一行

直接Fix-it
六、序列化和反序列化

序列化和反序列化
7、總結(jié)
protobuf數(shù)據(jù)格式的使用,提高了程序員開發(fā)效率,由于數(shù)據(jù)的輕量,所占到了更少的帶寬,提高程序的效率。只需要前期與后臺(tái)定義好.proto文件,得到的data的數(shù)據(jù),可以直接反序列化為data model,一定程度的提高了開發(fā)效率。