iOS protubuf 的使用



做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" 吧,这个是必须的哦!

然后下面就是代码:

[objc]  view plain copy
  1. //序列化  
  2. Person_Builder *ps = [[Person_Builder alloc] init];  
  3. ps.name = @"Aquarius";  
  4. ps.id = 10000;  
  5. ps.email = @"Aquarius@mail.com";  
  6. NSData *data = [[ps build] data];  
  7. //反序列化  
  8. Person *ps1 = [Person parseFromData:data];  


好了,以上就是怎么在ios下使用protobuf了,网上的资源是很多,但是都不是很全,要么就是一般人看了都晕晕的,要么就是链接下载出问题。

我这里的应该都能一直用,如果有什么问题,可以留言给我。我将知无不言。最后提醒一点,你所做出来的数据模型,千万不能重名!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值