做ios下的protobuf费了很大的力气,也终于特么的搞定了!
经过我的总结,这个流程是这样的…
1.首先你要有一套序列化和反序列化的库,下载它,然后解压,放到你的项目里面
这是百度云盘的链接:protobuf序列化的库
注意:这个东西是不支持arc的,所以请自行将其arc关掉。
怎么关arc?…这…给你链接!关闭arc方法
想要使用,请 #import "Bootstrap.h"
2.序列化是将数据转换为一个特定的类来做的,因此,我们需要相关的类文件,可是怎么创建类文件呢?
这个时候就需要protobuf编译工具了!这是变异工具百度云盘的链接:protobuf编译工具
注意:这玩意不是用来放在你的项目里了,可千万别这么搞..不然….反正我不会疯…
解压好,放到随意一个地方,嗯….那就桌面吧!然后到你的mac->应用程序->其他->终端
打开后输入: (注意,那个admin是我的用户的id,你自己的id是什么你自己知道…,也可以先输入 cd 记得后面加一个空格,然后将解压下来的文件夹直接拖到终端里面来),然后回车确定
这样以后呢,需要输入三个指令:(输入一个运行完了再输入另一个)
./configure
make
sudo make install (需要输入密码哦)
OK,这样我们就大功告成一半了!!(注意:运行会出现warning,这没关系,就跟你敲代码一样,有警告无所谓,出现error错误才表示失败)
3.创建要使用的数据模型
在第二步里面也说了,序列化和反序列化的时候都是用自己根据需求定义好的自定义的类
这一步我们来创建这个激动人心的小玩意~,假如俺的需求是一个人的信息,他有id,name,email 三个属性
用文本编辑写入:
message Person { required int32 id = 1; required string name = 2; optional string email = 3;}
然后保存,注意!保存成proto格式的,,自己改格式啦!什么!这都不会!
随便保存一个格式的,然后右键点开,显示简介,按下图,自己改!
改好了么?好了的话,创建一个文件夹放在桌面,文件夹的名字也就叫person算了
然后!各位观众!然后才是最重要的!
依然是点开心爱的终端,向上次一样cd 到peroson 的文件夹 ,会了吧应该?不会再去上面看!!
然后再输入指令:protoc ./*.proto –objc_out=./
不要再等了同学….. 输入完了不会有任何的显示的
打开你的person文件夹,你会惊奇的发现,你需要的数据模型类Person.pb.h&Person.pb.m已经静静的躺在这个文件夹里等你发落了。
ok,这样就对了嘛,创建成功!然后就把他们直接丢到你的项目吧!记得这个也不支持arc的呦!
4.使用,你还要问我怎么使用!你为什么步干脆吃饭洞房也要我帮你做了算了!
首先,你必须在要用的类里 #import "Person.pb.h" 吧,这个是必须的哦!
然后下面就是代码:
//序列化Person_Builder *ps = [[Person_Builder alloc] init];ps.name = @"Aquarius";ps.id = 10000;ps.email = @"Aquarius@mail.com";NSData *data = [[ps build] data];//反序列化Person *ps1 = [Person parseFromData:data];
好了,以上就是怎么在ios下使用protobuf了,网上的资源是很多,但是都不是很全,要么就是一般人看了都晕晕的,要么就是链接下载出问题。
我这里的应该都能一直用,如果有什么问题,可以留言给我。我将知无不言。最后提醒一点,你所做出来的数据模型,千万不能重名!!
版权声明:本文为博主原创文章,未经博主允许不得转载。
无论何时何地,只要创造就有收获,只有不息的奋进,才能证明生命的存在。